码迷,mamicode.com
首页 > 其他好文 > 详细

修改文件的两种方式

时间:2018-04-20 23:27:22      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:read   rem   lin   1.7   with   用户   word   space   写入   

一、修改小文件
1、打开一个文件,获取到文件所有内容
2、对内容进行修改:替换、写SQL、列表分割等
3、清空原来文件的内容
4、把新内容写入
f = open(‘username.txt‘,‘a+‘)
f.seek(0)
all_str = f.read() #读取所有内容,占内存较大
print(all_str)
new_str = all_str.replace(‘4567889‘,‘123456‘)
f.seek(0) #此时上方read已读到文件最后,清空操作要重新seek到文件开头
f.truncate() #清空文件
f.write(new_str)
f.close()
 
#在每个用户名前面加上syz_
f = open(‘username.txt‘,‘a+‘)
f.seek(0)
all_str = ‘‘
for line in f:
lines = ‘syz_‘ + line
all_str += lines
f.seek(0)
f.truncate()
f.write(all_str)
f.close()
 
for line in f.readlines():把文件中的所有内容转换成列表放到列表中,占用内存较大
for line in f: 是一行一行的读取内容,占用内存较小
 
二、修改大文件时
这种方法不用开辟一块内存来存文件中的所有数据,直接每一行写入另外一个文件,写完之后删除重命名。
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(‘花‘,‘flower‘)
fw.write(new_line)
os.remove(‘words‘) #删除文件
os.rename(‘.words.bak‘,‘words‘) #改名
 
 
补充:
f.write() #只能写字符串,对与列表中的元素,只能循环写入
f.writelines() #自动循环写入列表、字符串
 

修改文件的两种方式

标签:read   rem   lin   1.7   with   用户   word   space   写入   

原文地址:https://www.cnblogs.com/pengzhuopeng/p/8893908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!