我有一个文件,其中每行包含一个句子。但是有些句子是空的,也就是说,在这种情况下,行上只有"\n"
换行符。
我想做的是:如果我发现一个空句子,我想用。这样的符号代替它。
如果我替换"\n"
,它将在文件中的所有位置替换。
但是,我不确定如何执行此操作:
import sys
f = open(sys.argv[1], "wr")
for line in f:
if len(line.strip())==0:
line.replace("\n", "empty")
# Then write the line back on the file
f.write(line + "\n") # Will this replace the line in the file?
以上代码正确吗?我可以同时阅读并编辑吗?
答案 0 :(得分:0)
这是解决问题的快速方法,但如果存在内存不足的情况,也不是解决问题的理想方法。
f = open(sys.argv[1], "r")
lines = f.readlines()
f.close()
lines = ['empty' if i == '\n' else i for i in lines]
f = open(sys.argv[1], "w")
f.writelines(lines)
f.close()
如果您有内存限制,那么使用yield
创建一个函数将是解决此问题的最佳方法
编辑:我还应该说,除非进行了更新,否则我认为使用python覆盖文件中的特定行而不重写整个文件是不可能的。