一:os类库介绍
os模块包含普遍的操作系统功能,如果你希望你的代码和平台无关,那这个模块会很重要。
二:常用方法介绍
1.os.name 输出字符串:指正在使用的平台,如果是windows则用‘nt’表示,对于linux则用‘posix’ 2.os.getcwd() 当前的工作目录 3.os.listdir() 返回指定目录下所有的文件和目录名 ['.pytest_cache', 'test_001.py', 'test_002.py', 'test_003.py', 'test_004.py', 'test_005.py', 'test_006.py', 'test_007.py', 'test_008.py', 'test_009.py', '__init__.py', '__pycache__'] 4.os.remove() 删除某个文件 5.os.system() 运行shell命令 os.system('cmd') 启动dos 6.os.sep 可以取代操作系统特定的路径分割符(没用过) 7.os.linesep字符串给出当前平台使用的行终止符 8.os.path.split('C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https/test_001.py') 函数返回一个路径的目录名和文件名 ('C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https', 'test_001.py') 9.os.path.isfile() 函数检测给定的路径是否是文件 bool 10.os.path.isdir() 函数检测给定的路径是否是目录 bool 11.os.path.exists() 函数用来检验给出的路径是否存在 bool 12.os.path.abspath('test_008.py') 获得绝对路径 C:\Users\Administrator\Desktop\automation_test02\testcase\aaa_https\test_008.py 13.os.path.getsize('C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https/') 4096 14.os.path.splitext('C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https/test_001.py') 分离文件名与扩展名 ('C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https/test_001', '.py') 15.os.path.join('C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https/','test_001.py') 连接目录与文件名或者目录 C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https/test_001.py 16.os.path.basename('C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https/test_001.py') 返回文件名 test_001.py 17.os.path.dirname('C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https/test_001.py') 返回文件路径 C:/Users/Administrator/Desktop/automation_test02/testcase/aaa_https 18.os.popen(command[, mode[, bufsize]]) 给或从一个command打开一个管理。返回一个打开的连接到管道文件对象,文件对象可以读或写,在于模式是'r'(默认) 或'w',bufsize参数,和内建的open()函数是同一个意思。 command返回的状态 (在wait()函数中编码) 和调用文件对象的close()返回值一样, 除非返回值是0(无错误终止), 返回None . 在unix,Windows中有效。 print('******************第2种执行dos命令并返回结果*********************') result1=os.popen('dir').read() print(result1) 19.拷贝目录 from shutil import copytree # 拷贝 d:/tools/aaa 目录中所有的内容 到 e:/bbb 中 copytree('d:/tools/aaa', 'e:/new/bbb') 20.拷贝文件 from shutil import copyfile # 拷贝 d:/tools/first.py 到 e:/first.py copyfile('d:/tools/first.py', 'e:/first.py') 21.创建目录 import os os.makedirs('tmp/python/fileop',exist_ok=True) exist_ok=True 指定了,如果某个要创建的目录已经存在,也不报错 22.修改文件名 import os # 修改目录名 d:/tools/aaa 为 d:/tools/bbb os.rename('d:/tools/aaa','d:/tools/bbb') # 修改文件名 d:/tools/first.py 为 d:/tools/second.py os.rename('d:/tools/first.py','d:/tools/second.py') 注意,Linux 系统上,如果重命名之前 d:/tools/second.py 已经存在,则会被覆盖,所以使用该函数一定要小心。
三、open文件mode参数介绍
模式 描述
- t 文本模式 (默认)。
- x 写模式,新建一个文件,如果该文件已存在则会报错。
- b 二进制模式。
- '+ 打开一个文件进行更新(可读可写)。
- U 通用换行模式(不推荐)。
- r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
- rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
- r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
- rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
- w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
- w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
- a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
- ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。