一、模块介绍
os模块提供了一些便捷功能去使用操作系统,例如:读取文件目录,查看文件路径等。
二、模块学习
(一)获取系统类型,环境,执行系统命令
import os
def demo_1(): # 系统相关
# 1、获取系统类型
sy_name = os.name
print('系统为:%s' % sy_name) # nt为windows
# 输出:系统为:nt
# 2、获取系统环境
envision = os.environ # 返回系统环境变量,字典形式
print(envision)
# print(envision['PATH']) # 获得具体环境变量属性
environment = os.getenv('PATH')
# print(environment) # 获得具体环境变量属性
# 3、执行系统命令
os.system('ping www.baidu.com') # 获取程序执行命令的返回值。直接这样出现乱码
os.popen('ping www.baidu.com').read() # 获取程序执行命令的输出结果
os.system('chcp 65001') # 解决乱码,但是是英文
os.system('ping www.baidu.com')
if __name__ == '__main__':
demo_1() # 系统相关
(二)获取、更改、列举目录
import os
def demo_2(): # 获取、更改、列举目录
# 1、获取当前目录
cata = os.getcwd()
print('当前目录为:', cata)
# # 1.2 列举目录下的所有文件
cata_list = os.listdir()
print('目录下的所有文件为:', cata_list)
# 2、重命名目录及文件
os.rename('file.txt', 'file1.txt') # 前改成后
print('目录下的所有文件为:', os.listdir())
# 3、更改目录索引(更改的目录需要存在,不是新建,而且只是暂且更改,再次运行,仍然是原目录)
os.chdir(f'E:\\python_use_pycharm\\study\\study1\\book_study\\test11-文件处理2')
print('更改后的目录为:', os.getcwd()) # 更改后目录索引会转到新目录下
print('目录下的所有文件为:', os.listdir())
if __name__ == '__main__':
demo_2() # 操作目录及文件
输出结果如下:
(三)创建及删除目录、删除文件
os.remove() 删除文件
import os
def demo_3(): # 创建和删除目录,删除文件
# 1、创建目录
os.mkdir('./dir') # 创建单级目录,该目录存在,则无法创建
os.makedirs('./dir1/dir1_2/dir1_2_1') # 创建多级目录
print(os.listdir())
# 输出:['dir1', 'dir', 'file1.txt', 'os-demo.py', 'shutil-demo.py', 'write-txt.py']
# 2、删除目录
os.rmdir('dir') # 删除单级空目录,不空,报错
os.removedirs('./dir1/dir1_2/dir1_2_1')
print(os.listdir()) # 删除多级空目录,不空,报错
# 输出:['file1.txt', 'os-demo.py', 'shutil-demo.py', 'write-txt.py']
# 3、删除文件
os.remove()
if __name__ == '__main__':
demo_3() # 创建和删除目录
(四)对路径的相关操作
import os
def demo_4():
# 1、获取路径
file = 'file1.txt'
path0 = os.path.abspath(file) # 获取file的绝对路径
print(path0) # 输出:E:\python_use_pycharm\study\study1\book_study\test11-文件处理\file1.txt
path1 = os.path.abspath('.') # 获取当前文件目录的路径
print(path1) # 输出:E:\python_use_pycharm\study\study1\book_study\test11-文件处理
path2 = os.path.abspath('..')
print(path2) # 输出:E:\python_use_pycharm\study\study1\book_study
# 2、路径名的分离和组合
# #2、1 路径名的分离,假如有个path路径
path = 'E:\\python\\study\\study1\\book_study'
path_split = os.path.split(path)
print(path_split)
# 输出:('E:\\python\\study\\study1', 'book_study')
path = 'E:\\python\\study\\study1\\'
path_split = os.path.split(path)
print(path_split)
# 输出:('E:\\python\\study\\study1', '')
# 3、路径组合
path_join = os.path.join('E:\\python\\study\\study1', 'book_study', 'demo.py')
print(path_join) # 输出:E:\python\study\study1\book_study\demo.py
path_join = os.path.join('E:\\python', 'study', 'E:\\python\\study\\study1')
print(path_join) # 输出:E:\python\study\study1
# 4、返回路径的目录名和所在文件名
path = 'E:\\python\\study\\study1\\book_study'
print(os.path.dirname(path)) # 输出:E:\python\study\study1(\\结尾,则返回\\前面内容)
print(os.path.basename(path)) # 输出:book_study(\\结尾,则返回空)
if __name__ == '__main__':
demo_4() # 操作文件路径
(五)判断及获取文件或文件夹信息
def demo_5():
path = 'E:\\python_use_pycharm\\study\\study1\\book_study\\test11-文件处理2'
os.path.exists(path) # 判断文件及文件夹是否存在,存在True
os.path.isfile(path) # 判断是否是文件
os.path.isdir(path) # 判断是否是目录
os.path.isabs(path) # 判断是否是绝对路径
os.path.getsize(path) # 获取文件大小
print(os.path.exists(path), os.path.isfile(path), os.path.isdir(path), os.path.isabs(path), os.path.getsize(path))
# 输出:True False True True 0
新手,记录,方便查看。
有错误,欢迎指正,谢谢!