我有一个文本文件 Thai_Rectangle2_National Parks.txt ,其中包含以下几行。
1
2
3
4
5
dy 0.5965
7
现在,我想删除该文本文件中的第 6 行。
为此,我使用以下 python 代码。
f = open("C:/Users/Sreeraj/Desktop/Thailand_Rectangle2_National Parks.txt","r")
lines = f.readlines()
因此,我将该文本文件的所有行保存在“lines”中。
line6 = lines[5]
t = line6[:2]
f.close()
所以,现在,我有 't' = "dy" 。现在,
if t == "dy":
f = open("C:/Users/Sreeraj/Desktop/Thailand_Rectangle2_National Parks.txt","w")
for line in lines:
if lines[5] != line6:
f.write(line)
f.close()
因此,如果满足条件 't' = "dy",那么我将打开此文本文件进行写入,并打印除第 6 行之外的所有行(这意味着第 6 行已从此文本文件中删除)。
不幸的是,我将此文本文件中的行显示为空白,这意味着没有行被打印为输出。
但是,我想要文本文件中的行如下所示。
1
2
3
4
5
7
我该如何解决这个问题?
我只想使用Python编程来解决这个问题;因为这是一项重大工作中的一项小任务。
你的问题是lines[5]
will always等于line6
。你从未修改过第六行lines
, so line6
and lines[5]
仍然相等。因此,条件lines[5] != line6
总会失败。
如果您想始终从文件中删除第六行,您可以使用enumerate
。例如:
with open("file.txt", "r") as infile:
lines = infile.readlines()
with open("file.txt", "w") as outfile:
for pos, line in enumerate(lines):
if pos != 5:
outfile.write(line)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)