读书人

[]python怎么修改文件内容

发布时间: 2012-06-03 16:59:40 作者: rapoo

[求助]python如何修改文件内容
感觉是个很基本的功能,但我实际使用时发现并不那么简单。
有一个num.txt文件,内容如下:
1
22
333
4444
55555

我希望在333这行之后插入一个字符串,代码如下:
import os
filename = open("num.txt","r+")
addstr="test str"
for line in filename:
if line.strip().startswith("33"):
filename.write(addstr)
filename.close
结果是在文件末尾写入了很多内容。(如果只写入addstr还容易理解)
我在这里是学习用的程序。是想搞明白有些问题:
1.是否使用for …… in 这种方式,无法用filename.write方式插入内容。
2.在文件中间插入一行,应该如何定位、插入。
3.r+方式打卡文件是否合适。因为w方式打开文件会无法读取文件内容。


[解决办法]
貌似写文件没有所谓插入,只能是覆盖动作,所以用r+读写只能是等量替换或尾部附加。增添删除的情况一般就是简单只读打开原文件过滤处理,另外用w模式建立一个新文件写入,最后删掉原文件,新文件用原文件名重命名...
[解决办法]
读写以当前文件指针为准,每次读写后指针都会自动调整,除非你手动调整文件指针,同时保证不要无意覆盖了其他文件内容。
貌似编辑器基本以内存行为单位修改/替换,然后按需全部回写到磁盘文件吧
[解决办法]
你想在 333 后插入内容,原本在 333后面的东西的偏移量都要发生变化,目前想到的解决方法和 angel_su 的一致。继续围观看有没有好的办法

读书人网 >perl python

热点推荐