文件操作
文件操作对编程语言的重要性不用多说,如果数据不能持久保存,信息技术也就失去了意义。
1.1 ,open 操作
open(
file, # 文件名
mode='r', #默认为只读模式
buffering=-1,# 缓冲区
encoding=None,# 默认编码
errors=None,#
newline=None,
closefd=True,
opener=None,
)
操作 | 解释 |
---|---|
r | 只读权限;默认是文本模式 |
w | 只写权限,文件不存在则创建新的文件,如果存在则清空文件内容. |
x | 不存在则创建一个新的,存在则报错;只写权限 |
a | 只写权限,尾部追加写入,读也是从文件末尾开始读取,受文件指针影响 |
b | 只读二进制模式 |
t | 文本模式,相当于"rt ''只读模式, |
+ | 为r,w,a,x提供缺失的读或者写功能,但是获取文件对象依旧按照r,w,a,x自己的特征 |
# r模式
f = open('test') # 默认只读
f.read() # 可以读取
f.write('abc')# 报错
f.close()#关闭文件
f = open('test', 'r') # 只读模式打开
f.write('abc')
f.close()
f = open('test1', 'r') # 只读,文件不存在 则创建一个新的文件
# w模式
f = open('test','w') # 只写打开
f.write('abc')
f.close()
f = open('test', mode='w')
f.close()
>>> cat test # 看看内容
f = open('test1', mode='w')
f.write('123')
f.close()
>>> cat test1 # 看看内容
wxa模式都可以产生新文件
- w不管文件存在与否,都会生成全新内容的文件
- a不管文件是否存在,都能在打开的文件尾部追加
- x必须要求文件事先不存在,自己造一个新文件
文本模式打开
字符流,将文件的字节按照某种字符编码理解,按照字符操作。open的默认mode就是rt。
二进制模式
字节流,将文件就按照字节理解,与字符编码无关。二进制模式操作时,字节操作使用bytes类型.
f = open("test3",'rb') # 二进制只读
s = f.read()
print(type(s)) # bytes
print(s)
f.close() # 关闭文件
f = open("test3",'wb'