电子游戏平台open文件操作之mode模式剖析
open文件操作之mode模式剖析,openmode模式剖析
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
最后画一张表格总结一下:
open的内容还有很多,针对于读,还有个更好的模块linecache用于读取大文件;以后有时间继续扩展
Python可以使用open函数来实现文件的打开,关闭,读写操作;
Python3中的open函数定义为: open(…
相关文章
- 电子游戏平台[Python][Scrapy 框架] Python3 Scrapy的安装,scrapypython3
- php将session放入memcached的设置方法_php实例_脚本之家
- 【电子游戏平台】golang网络socket粘包问题的解决方法,Go语言基于Socket编写服务器端与客户端通信的实例
- Linux基础之命令练习Day7
- 电子游戏平台创新意识小游戏单日广告分为流水100万以内,Wechat推小游戏创新意识鼓舞安顿
- Bootstrap栅格系统
- 脚本配置
- 00再次开售
- 却刻骨铭心了自己闺女,Trump问了自个儿一遍水肿和HPV的区分
- 电子游戏平台二种分裂的Cortex,外国媒体anandtech深入分析HUAWEI海思麒麟980