文章读写
读写文章是最常见的 IO 操作。
读
1.Python 中内置了open()函数,read()方法以及close()方法来打开文件
fi = open('test.html','r') content = fi.read() print(content) fi.close()
2.由于文件读写时都有可能产生 IOError,一旦出错,close() 方法就不会调用,所以,我们可以通过 try...finally 来保证无论是否出错都能正确关闭文件
try: fi = open('test.html','r') content = fi.read() print(content) finally: if f: fi.close()
-
Python 中提供更简洁的 with...as 语句来实现上面的效果,能够自动调用 close() 方法
with open('test.html') as f:
print(f.read()) -
read(),read(size),readline()————如果文件很小,read() 一次性读最方便,如果文件比较大使用 read(size) 比较安全。如果是配置文件可以使用 readlines() 比较方便
with open('test.html','r') as f:
for line in f.readlines:
print(line) -
二进制文件————要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可:
with open('test.html','rb') as f:
pass -
对于非 UTF-8 编码的文本文件,需要给 open()函数传入 encoding 参数
f = open('test.html','r',encoding='gdk')
f.read() -
对于有些编码不规范的文件,你可能会遇到 UnicodeDecodeError。这时候我们可以通过为 open 参数添加 error 来实现
忽略不规范编码
with open('test.html','rb',encoding='gdk',error='ignore')
写
1.写文件和读文件是一样的,唯一的区别就是调用 open() 函数时,传入标识符 'w' 或者 'wb'
2.white() 方法可以用于写入文件
操作文件、目录
1.Python 中内置 os 模块可以直接调用操作系统提供的接口函数
import os print(os.name) print(dir(os))
2.在操作系统中定义的环境变量可以直接通过访问变量 os.environ
print(os.environ) #要获取某个环境变量的值,可以调用 os.environ.get('key') print(os.environ.get('x','default'))
3.操作文件和目录的函数一部分放在 os 模块中,一部分放在 os.path 下
##查看当前目录的绝对路径 os.path.abspath('.') ##os.path.jion()函数 接收两个参数 这样可以正确处理不同操作系统的路径分隔符 newPath = os.path.join('/Users/michael', 'testdir') ##os.path.join() 返回的一个字符串 ##我们可以通过下面的方式增删目录 os.mkdir(newpath) os.rmdir(newpath) ##同样道理,在我们拆分路径是,也不要直接去拆字符串。而是通过os.path.split() ##它会为你返回一个两部分的元组 os.path.split(newPath) ##os.path.splitext() 可以直接让你得到文件扩展名 os.path.splitext(Path) #os.rename()文件重命名 #os.remove()文件删除
4.shutil 模块提供 os 的补充功能
来源:https://www.cnblogs.com/panyuexin/p/7397431.html