文件读写注意事项
打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
打开文件的模式有:
-
r ,只读模式【默认】
-
w,只写模式【不可读;不存在则创建;存在则清空内容;】
-
x, 只写模式【不可读;不存在则创建,存在则报错】
-
a, 追加模式【不可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
-
r+, 读写【可读,可写】:写时默认为末尾追加。但是可以用f.seek(2),指定指针。指定位置写。
-
w+,写读【可读,可写】:先清空,在写之后,就可以读了。打开文件的时候就清空了。
-
x+ ,写读【可读,可写】:和w+基本一致,只是文件存在时,会报错。
-
a+, 写读【可读,可写】:因为是追加。打开文件的同时,已经把指针放到最后了。文件写的时候,只能在末尾追加了。和r+是有区别的。
-
f.tell() 获取指针的位置。
-
f.seek() 调整指针的位置
-
f.truncate 依赖于指针来截取。
"b"表示以字节的方式操作
-
rb 或 r+b
-
wb 或 w+b
-
xb 或 w+b
-
ab 或 a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型
with open 同时打开两个文件
with open("源文件","r") as obj1, open("新文件","w") as obj2:
for line in obj1:
obj2.write(line)