首页 > 技术文章 > 2017.12.20 Python 文件I/O

gzhli 2017-12-20 09:18 原文

2017.12.20 Python 文件I/O 
1.open参数及Character作用

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
========= ===============================================================
Character Meaning
--------- ---------------------------------------------------------------
'r' open for reading (default)
'w' open for writing, truncating the file first
'x' create a new file and open it for writing
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)
========= ===============================================================
 
2.r 和 rb 用法。
# r : 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
f = open('gushi','r',encoding = "utf8")
p = f.read()
print(p)
# f.write("1") r: 不能写 io.UnsupportedOperation: not writable
print(p)
f.colse()
#rb    以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
f = open('gushi','rb')
p = f.read()
print(p)
f.colse()
3.r+ 和 rb+ 用法。
#r+    打开一个文件用于读写。文件指针将会放在文件的开头。写入时紧跟着原文的内容后面继续添加。不会覆盖原文
f = open('gushi','r+',encoding = "utf8")
p = f.read()
print(p)
f.write("5")
print(p)
f.close()
#rb+    打开一个文件用于读写。文件指针将会放在文件的开头。写入时紧跟着原文的内容后面继续添加。不会覆盖原文
f = open('gushi','rb+',encoding = "utf8")
p = f.read()
print(p)
f.write("5")
print(p)
f.close()
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

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

推荐阅读