我试图删除包含特定字符串的特定行。
我有一个名为numbers.txt的文件,其中包含以下内容:
peter
tom
tom1
yan
我要删除的是文件中的tom,因此我制作了以下函数:
def deleteLine():
fn = 'numbers.txt'
f = open(fn)
output = []
for line in f:
if not "tom" in line:
output.append(line)
f.close()
f = open(fn, 'w')
f.writelines(output)
f.close()
输出为:
peter
yan
如您所见,问题在于函数deletetom和tom1,但我不想删除tom1。我只想删除汤姆。这是我想要的输出:
peter
tom1
yan
有什么办法可以改变函数使之正确?
那是因为
检查
tom
是否不是当前line
的子字符串。但在tom1
中,tom
是一个子串。因此,它被删除。您可能需要以下选项之一:
只是为了好玩,这里有一个两行。
挑战:有人为此贴了一行。
您还可以使用fileinput模块获得最可读的结果:
更改行:
致:
相关问题 更多 >
编程相关推荐