IO编程
读文件
open(‘路径’,’模式’,encoding=’编码方式’,errors=’ignore’)
- 打开文本文件使用’r’,二进制文件使用’rb’
- 编码方式默认为UTF-8
- 遇到编码错误后使用error参数处理
每次打开文件操作结束后需要使用f.close()关闭文件,不然会持续造成内存占用。
可以使用with语句简化操作。
写文件
write([str])
write()方法用于向文件中写入指定字符串,参数为字符串,返回值为写入的字符长度。
和open()参数配合with使用
1 | with open('/test/test.txt','w') as f: |
需要注意的是,以w模式写入文件时,默认是覆盖原有文件的所有内容,如果需要将字符串追加到文件末尾,则可以使用’a’模式写入。
os模块
首先使用import os
将os模块加载进来
- os.name 返回操作操作系统类型,posix为Linux、Unix或Mac os x,nt为Windows操作系统。
- os.uname 返回详细的系统信息,但是Windows不可使用
- os.environ 返回系统中定义的环境变量,如果需要获取某个变量的值,可以调用os.environ.get()
操作文件和目录
1 | # 查看当前目录的绝对路径: |
注意,因为在Linux和Windows中目录分割符号不同,所以在拼接和拆分目录结构时不要直接拼接字符串,而要使用os.path.join()
和os.path.split()
函数操作
os.path.splitext()
函数可以直接获取到文件扩展名
shutil模块中提供了很多os模块没有的实用功能,可以看作是os的扩展补充。
列出当前目录下的所有目录:
1 | >>> [x for x in os.listdir('.') if os.path.isdir(x)] |
列出所有的.py后缀的文件
1 | >>> [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py'] |