Python-读写文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-读写文件相关的知识,希望对你有一定的参考价值。

一、文件有三种打开方式,分别为读、写、追加。默认读方式打开

1、以读方式打开,文件不存在时,会报错

2、以写方式打开,文件不存在时,会创建一个文件;文件存在时,会清空文件原有内容

3、以追加方式打开,可读写文件,但是游标当前位置为文件末尾

 

二、实现代码

1、以“读”方式打开文件

f = open(users.txt,r,encoding=utf-8) #如果文件不是uft-8编码方式,读取文件可能报错
print(f.read()) #返回一个字符串,读取文件所有内容
print(f.readlines()) #返回list,文件的每一行作为list的一个字符串元素
print(f.readline()) #读取一行

 

2、以“写”方式打开文件

f = open(users.txt, w) #清空文件内容再写
f.write(aaa) #只能写字符串
f.write(\n)
f.writelines([123,\n, bbb,\n]) #可写所有能迭代的类型,例如list
f.writelines((456,\n, ccc)) #例如tuple
f.close()

 

3、以“追加”方式打开文件

f = open(users.txt,a+) #可读写文件,文件不存在就创建一个文件
f.seek(0) #要先把游标放到文件开始处,否则f.read()为空
print(f.read()) #读取整个文件内容
print(这里是分割线.center(100, -))
f.seek(0)
for line in f: #高效率的读取方式,每次只读一行
    print(line)
f.close()

 

4、以 ‘r+‘ 或 ‘w+’ 方式打开文件

f = open(users.txt,r+) #读写模式 r+,不会清空文件,但是写入的内容会替换原有的内容,从文件起始位置进行替换
 
f = open(users.txt,w+) #写读模式 w+,请求文件,光标在写入文件的末尾

 

三、修改文件

1、第一种方式:读取原有文件,修改内容,删除原有数据,写入修改后的内容

有时候发现write()之后,数据并没有写入文件,有可能是写入数据量太小,缓存区还未满,没有写入到磁盘。因此,加上函数f.flush(),强制将缓存区的数据写入磁盘中

f = open(users.txt,a+)
f.seek(0) #将游标指到起始位置
old = f.read()
new = old[:4] + 12
f.seek(0) #读取文件后,将游标重新指向起始位置
f.truncate()  #清空游标之后的所有内容
f.write(new) #写入新数据
f.flush() #将缓存区的数据写入硬盘
f.close()

 

2、第二种方式:创建一个新文件,保存修改后的内容,再重命名

import os
with open(users.txt, r) as f, open(users_new.txt, w) as f1: #打开源文件并创建一个新文件
    old = f.read()  #读取源文件
    new = old.replace(ef, 12) #修改文件内容
    f1.write(new)  #将修改后的内容写入新文件
os.remove(users.txt)  #删除原始文件
os.rename(users_new.txt, users.txt)  #将新文件重命名为原始文件

 

以上是关于Python-读写文件的主要内容,如果未能解决你的问题,请参考以下文章

python读写文件

Python代码中打开txt文件(非读写)

python常用代码片段总结

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?

常用python日期日志获取内容循环的代码片段

Python文件读写