Python:读取文件时写入

时间:2019-04-30 03:21:18

标签: python file

我有一个文件,其中每行包含一个句子。但是有些句子是空的,也就是说,在这种情况下,行上只有"\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?

以上代码正确吗?我可以同时阅读并编辑吗?

1 个答案:

答案 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覆盖文件中的特定行而不重写整个文件是不可能的。