python读写本地文件
这篇文章主要介绍python读写本地文件的操作方法和详细解析
一、文件的打开和创建以及读取
代码:
f=open('readfile_name.txt' , 'r' )
connect=f.read()
print(connect)
file.close() #文件读取过后关闭文件
注释:
上面的三行代码,第一行的详细解析为:用open()函数直接打开括号中第一项的那个文本文件,如果该文件不存在将会自动创建然后进行读取,标识符 ‘r’ 是读的意思,为英文单词‘read’的缩写,文件名和标识符用逗号隔开;创建一个对象为 f ,这样才方便调用。第二行解析:自定义的变量connect(可以随意起的变量名)用来接收文件读取的内容,然后用之前创建的 f 对象调用read()方法进行读取。第三行解析:print()输出读取到的内容
由于文件读写时可能产生错误的,一旦出错,后面的f.close()就不会调用。所以为了保证无论是否出错都正确的关闭文件,我们可以使用try…finally…来实现:
try:
f=open('readfile_name.txt' , 'r' )
connect=f.read()
print(connect)
finally:
if f:
f.close()
但每次这么写都太过繁杂,所以python引入了with语句来自助帮我们调用close()方法:
with open('readfile_name.txt' , 'r' ) as f:
print(f.read())
这和前面的 try…finally… 是一样的,但代码更加简洁,并且不必调用f.close()方法
调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。
如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:
for line in f.readlines():
print(line)
二、文件写入
步骤:打开→写入→(保存)关闭
直接写入是不行的,因为默认打开是‘r’只读模式
代码:
file = open('write.txt', 'w')
file.write('hello world')
f.close()
你可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用with语句来得保险:
with open('write.txt', 'w')as f:
f.write('Hello Word!')
>细心的学习者会发现,以‘w’模式写文件时,如果文件已存在,会直接覆盖(相当于删掉后从重写)。如果想要追加到文件末尾可以尝试这种方法传入‘a'以追加(append)模式写入
python读写文件的方式常用的有以下几种
r : 以只读的方式打开文件,文件的描述符放在文件的开头
rb : 以二进制格式打开一个文件用于只读,文件的描述符放在文件的开头
r+ :打开一个文件用于读写,文件的描述符放在文件的开头
w :打开一个文件只用于写入,如果该文件已经存在会覆盖,如果不存在则创建新文件
wb :打开一个文件值用于写入二进制,如果该文件已经存在会覆盖,如果不存在则创建新文件
w+ :打开一个文件用于读写
a :打开一个文件用于追加,如果文件存在,文件描述符将会放到文件末尾