python中的open()函数用于打开一个文件,创建file对象,相关方法才可以调用它进行读写
语法:open(name,[,model[,buffering]])
模式描述
r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w
打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+
打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
1.读文件
如果文件打开成功,则显示打开文件ex15_sample.txt的内容
最后一步调用close()方法关闭文件,使用文件完毕后必须关闭文件。因为文件对象会占用操作系统资源,且操作系统同时打开文件数量有限
由于文件读写会产生IO error ,如果报错会导致后面的close()无法执行,所以为了保证是否出错都能正确关闭文件,可以使用try-finally 来实现
(ps:注意try-finally中的缩进问题)
2.使用with open函数打开,以及常见的坑
#with作用就是调用close()方法
跟前面的try-finally实现功能一样,但是代码更简洁
file对象方法
file.read(size):size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(即空字符串)。
file.readline():每次读取一行
file.readlines([size]):一次性读取所有内容并返回list
for line in f:print(line) :通过迭代器访问
f.write("hello "):如果要写入字符串以外的数据,先将他转换为字符串
f.tell():返回一个整数,表示当前文件指针的位置(文件头的字节数)
如果文件小,用read()一次性读取最方便,不确定大小建议用read(size)比较保险,如果是配置文件使用readlines()最方便。
1.打开非utf-8编码的文件
f=open('/users/wujing/desktop/test2020/ex15_sample.txt','r',encoding='gbk')
f.read()
2.打开二进制文件
读取二进制文件,比如图片、视频等,用rb模式打开即可
参考资料:https://blog.csdn.net/chenmozhe22/article/details/81434549