文件的读写操作
-
前导
python内置了读写文件的函数。读写文件,不是直接操作磁盘,现代操作系统不允许,所以在磁盘上读写文件的功能均有操作系统提供,即读写时请求操作系统打开一个文件对象,然后,通过操作系统提供的接口从该文件对象中读取数据或者把数据写入文件。
通常情况下,读写文件主要分为以下步骤
打开文件,open()
读取、或者写入文件,read()
、write()
等
关闭文件,close()
、with
用法等
简单示例
f = open('123.txt')
print(f.read())
f.close()
-
打开文件
打开文件,open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])
,file参数必填,其他的为选填,经常会用到的参数mode
、encoding
、errors
mode
,即打开文件的模式
r
表示仅读
w
表示仅写
a
表示追加
+
表示读写
b
表示二进制模式
t
表示文本模式
例如:
模式 | 含义 |
---|---|
r | 以只读模式打开文件,默认模式,文件存在,则清空已有内容;文件不存在,则会报错 |
rb | 类似r ,以二进制格式打开文件 |
r+ | 打开一个文件用于读写,文件指针放在文件开头 |
rb+ | 以二进制的方式打开一个文件用于读写,文件指针放在文件开头 |
w | 用于只写,默认模式,文件存在,则清空已有内容;文件不存在,则会新创建 |
w+ | 用于读写,文件存在,则清空已有内容,不存在,则会创建 |
wb | 以二进制的方式打开文件用于读写 |
a | 打开一个文件用于追加,文件不存在,则创建;文件存在,则在已有内容后追加新内容 |
总的来说, 包含 w
、a
、+
的单一模式或者组合模式,如果文件不存在,会创建新文件
#w+模式
f = open('124.txt',"w+")#体现可写
f.write("222eeee")
print("备注:写入完成后,如果要读,需要将指针指向文件开头,否则读到的内容为空")
f.seek(0)
print(f.read())#体现可读
f.close()
-
读取文件或者写文件
read() 一次性读取文件全部内容,也可以指定每次读取多少个字节
readline() 每次读取一行
readlines() 一次性读取所有行,并按行返回list
write() 写入文件,写入内容为字符串
writelines() 写入文件,写入内容为可字符串,也可以是列表和字典内容,字典仅为关键字
另外文件对象是可迭代的,可以直接在for中使用,如下
with open('124.txt', 'r') as f:
for line in f:
print (line)
-
关闭文件
try...finally
,确保在任何情况下,文件都能被关闭
with
的使用, with 控制块结束时,文件会自动关闭
#第一种示例
try:
f=open('124.txt', 'r')
f.read()
finally:
if f:
f.close()