假设我有两个 txt 文件, in.txt
并且out.txt
.
在.txt:
Mary is Passed
Jane is Failed
出.txt:
Status of Mary: 'N/A'
Status of Jane: 'N/A'
我想编写 Python 代码,它读取in.txt
并替换 'N/A'Passed
为 Mary 和Failed
Jane in out.txt
。
我可以设法写在行尾out.txt
但不能写在'N/A'
在此处查看我对相关问题的回答:删除文件中的一行
基本上,编辑文件中间的字节并不好玩。如果文件不是太大,您应该只读取内存中的文件并在最后覆盖它,或者如果它真的很大,则使用类似tempfile的东西。
import re
...
outf = open('myout', 'r+')
inf = open('infile', 'r')
outdata = outf.read()
for line in inf:
outdata = re.sub("(?<=Status of %s: )'N/A'" % line.strip().split()[0], line.strip().split()[2], outdata)
outf.write(outdata)
outf.close()
inf.close()