python创建打开文件-python打开文件方式

python中的open()函数用于打开一个文件,创建file对象,相关方法才可以调用它进行读写

语法:open(name,[,model[,buffering]])

模式描述

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

1.读文件

480476-20200923210101602-251829370.png

如果文件打开成功,则显示打开文件ex15_sample.txt的内容

480476-20200923210322244-1063445408.png

最后一步调用close()方法关闭文件,使用文件完毕后必须关闭文件。因为文件对象会占用操作系统资源,且操作系统同时打开文件数量有限

480476-20200923210945324-1908189956.png

由于文件读写会产生IO error ,如果报错会导致后面的close()无法执行,所以为了保证是否出错都能正确关闭文件,可以使用try-finally 来实现

480476-20200923211512250-1960767767.png

(ps:注意try-finally中的缩进问题)

2.使用with open函数打开,以及常见的坑

#with作用就是调用close()方法

480476-20200923212555206-697968144.png

跟前面的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():返回一个整数,表示当前文件指针的位置(文件头的字节数)

480476-20200923214120661-502523307.png

如果文件小,用read()一次性读取最方便,不确定大小建议用read(size)比较保险,如果是配置文件使用readlines()最方便。

1.打开非utf-8编码的文件

f=open('/users/wujing/desktop/test2020/ex15_sample.txt','r',encoding='gbk')

f.read()

2.打开二进制文件

读取二进制文件,比如图片、视频等,用rb模式打开即可

480476-20200923220016672-975888510.png

参考资料:https://blog.csdn.net/chenmozhe22/article/details/81434549

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值