Python 修改文件
Posted 柠檬Lamon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 修改文件相关的知识,希望对你有一定的参考价值。
一、有时候我们会遇到在写入文件后,其实内容并未被写到文件里面的问题
#原因是内容先写到缓冲区,缓冲区满时,才写入磁盘 #解决:用f.flush()强制把缓冲区里面的数据写到磁盘上 fw = open(‘username.txt‘,w) fw.write(‘测试‘) fw.flush()
二、修改文件简单直接的方法(replace()),此方法当文件内容较多时,效率不高,会出现内存溢出的情况
1、打开一个文件,获取到文件的内容read方法(返回类型是str)
2、对内容进行修改
3、清空原来的内容truncate方法
4、把新的内容写到文件
f= open(‘username.txt‘,‘a+‘) f.seek(0)#a+模式文件指针默认在文件末尾,用seek(0)将文件指针放到开头 all_str = f.read()#返回类型是str,当文件内容较多时,效率不高 new_str = all_str.replace(‘123456‘,‘789012‘)#替换文件内容
f.seek(0)
f.truncate()#清空文件内容 f.write(new_str)#将修改后的文件内容写入文件 f.close()#关闭文件
修改文件内容中举例:给文件中的用户名前统一加值test_
f = open(‘username.txt‘,‘a+‘) f.seek(0) all_str = ‘‘#每次循环的时候把字符串拼接起来,然后最后写入文件 for line in f:#f.readlines()把文件里面所有的东西一次都读出来放到list里面,文件大的话效率不高 new_line = ‘test_‘ + line all_str += new_line f.seek(0) f.truncate()#清空文件内容 f.write(all_str) f.close()
三、以上修改文件方法当文件小时用起来是比较方便的,但文件大时效率不高,以下介绍一种效率比较高的方法
1、打开两个文件 2、a文件,一行一行修改 3、写一行写到b文件 4、a.txt a.txt.bak 5、删除a文件,b文件的名字改为a文件名 #f.write()只能写字符串 # f.writelines()循环写入,会帮助咱们循环list写入 import os with open(‘words‘,encoding=‘utf-8‘) as fr,open(‘.words.bak‘,‘w‘,encoding=‘utf-8‘) as fw: for line in fr: new_line = line.replace(‘测试‘,‘test‘) fw.write(new_line) os.remove(‘words‘)#删除文件 os.rename(‘.words.bak‘,‘words‘)#改名
以上是关于Python 修改文件的主要内容,如果未能解决你的问题,请参考以下文章
我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段