python open 文件的操作
我本想把文件内容里面的huang替换成boy, 如图片所示是可以替换掉的,但是代码运行完之后发现最终是没有被替换,我想是不是因为文件的打开方式不正确,需要怎么修改呢?
file = open('sonic1.txt', 'r+')
for eachline in file:
if 'huang' in eachline:
eachline.replace('huang', 'boy')
print(eachline)
file.close()
读完以后要写入,你的替换操作只在内存中进行,没有写入文件 hi 请lz参考
你的代码缺失写入。先读取、后写入
with open('sonic1.txt' , 'r' ) as f: #先把文件内容读取到内存中
lines = f.readlines()
with open('sonic1.txt' , 'w') as f_write:#执行替换并写入
for line in lines:
if 'huang' in line:
line = line.replace('huang' , 'boy' )
f_write.write(line)
thexiosi 发表于 2018-6-23 11:05
hi 请lz参考
你的代码缺失写入。先读取、后写入
用不着两次open吧 凌九霄 发表于 2018-6-23 12:55
用不着两次open吧
嗯,应该有更好的解决方案 凌九霄 发表于 2018-6-23 12:55
用不着两次open吧
要怎么改才不用两次打开文件呢? sonichuang 发表于 2018-6-23 21:53
要怎么改才不用两次打开文件呢?
其实也是擦了重写
with open('sonic1.txt', 'r+') as f:
line = f.read()
line = line.replace('huang' , 'boy')
f.seek(0)
f.truncate(0)
f.write(line)
页:
[1]