Python的open函数定义了哪些属性?关闭和读写对应的应该如何使用?

Python可以使用open函数来实现文件的打开,关闭,读写操作;
Python3中的open函数定义为:
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
其中mode列表为:

'r'       #open for reading (default)
'w'       #open for writing, truncating the file first
'x'       #create a new file and open it for writing,python3新增
'a'       #open for writing, appending to the end of the file if it exists
'b'       #binary mode
't'       #text mode (default),python3新增
'+'       #open a disk file for updating (reading and writing)
'U'       #universal newline mode (deprecated)

这里我们主要关心一下'r', 'w', 'a', 'r+', 'w+', 'a+', 'x',很多人容易混淆不同模式的读写操作
1)'r'
只读模式,open函数中mode参数的默认模式,文件不存在的话,报FileNotFoundError(python2是IOError);
文件打开后,初始游标位置为0;
每次读都是从游标位置开始读;
如果进行了写操作,会报如下异常:
io.UnsupportedOperation: not writable
2)'w'
只写模式,文件不存在的话,创建文件;文件存在的话,首先清空文件,然后开始写;
文件打开后,初始游标位置为0;
每次写都是从游标位置开始写;
如果进行了读操作,首先文件也会被清空,会报如下异常:
io.UnsupportedOperation: not readable
3)‘a’
追加模式,文件不存在话,创建文件;文件存在的话,不会清空文件;
文件打开后,初始游标位置为文件结尾;
每次写都是从结尾开始写;
如果进行了读操作,同时报如下异常:
io.UnsupportedOperation: not readable
上面的比较好理解,下面就有点绕了
4)'r+'
读写模式,文件不存在的话,报FileNotFoundError(python2是IOError)
文件打开后,初始游标位置为0;
每次读写都是从游标位置开始;但是对于写操作,类似于替换操作;
看如下代码:
文件内容为:
abcdefg
代码内容为:

f = open('open_mode.txt', 'r+')
f.write('xyz')
f.close()


运行代码后,文件内容变为:
xyzdefg
5)'w+'
只写模式,文件不存在的话,创建文件;文件存在的话,首先清空文件;
文件打开后,初始游标位置为0;
每次读写都是从游标位置开始;写操作,类似于替换操作;
6)‘a+’
追加模式,文件不存在话,创建文件;文件存在的话,不会清空文件;
文件打开后,初始游标位置为文件结尾;
每次写都是从结尾开始写;
读操作从游标位置开始;
7) 'x'
python3新加
创建文件并写操作,操作必须是不存在的文件,如果操作的文件已存在,则报错FileExistsError
不可读,如果进行了读操作,同时报如下异常:
io.UnsupportedOperation: not readable

 

Python中,文件的读写操作是编程中非常基础也是极为重要的技能。为了深入理解文件操作的细节,特别是在使用Python进行应用程序编程时,你可以参考《Core Python Applications Programming(3rd) 无水印pdf》一书。本书作为权威指南,全面覆盖了Python应用编程的关键知识点。 参考资源链接:[Core Python Applications Programming(3rd) 无水印pdf](https://wenku.youkuaiyun.com/doc/64755159543f844488fa6ab4?spm=1055.2569.3001.10343) Python中进行文件操作的基础是内置的open()函数open()函数的典型用法是创建一个文件对象,然后通过这个文件对象来进行读写操作。open()函数的基本语法如下: file_object = open(file_name, mode) 其中file_name是文件的名称,包括路径(如果文件不在当前目录下)。mode是可选参数,用于指定文件的打开模式,比如'r'代表读取,'w'代表写入,'a'代表追加等。 下面是一个使用open()函数进行文件写入操作的示例代码: with open('example.txt', 'w') as *** ***'Hello, Python!') 在这个例子中,我们以写入模式打开了名为example.txt的文件,并写入了字符串'Hello, Python!'。这里使用了with语句来确保文件在操作完成后会被正确关闭open()函数还支持其他参数,例如encoding来指定文件编码,errors来处理编码错误等。对于文件读取操作,可以使用'r'模式,并使用read()方法来读取文件内容。如果需要读取特定的字节数,可以传递一个参数给read()方法。 学习并掌握文件操作是构建Python应用程序的关键步骤之一。《Core Python Applications Programming(3rd) 无水印pdf》将为你提供更深层次的理解实践指导,帮助你在这个领域里更进一步。 参考资源链接:[Core Python Applications Programming(3rd) 无水印pdf](https://wenku.youkuaiyun.com/doc/64755159543f844488fa6ab4?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值