假设我有一个名为input.txt的文件,内容如下:
我希望过滤掉单独的数字,因此"4"和"5"应该被去除,但是"u2"和"4ever"应该保留,即输出应该为:
这与我在这里找到的代码非常相似:从字符串中删除混合数字和字母
正如您所看到的,这里有两个问题,首先只有第一行失去了我想要丢弃的数字,“5”仍然存在于第二行。第二个问题是在新行开头的额外空格。
我已经玩弄了代码一段时间并浏览了stackoverflow,但找不到问题出现的地方。有什么见解吗?
I listened to 4 u2 albums today
meet me at 5
squad 4ever
我希望过滤掉单独的数字,因此"4"和"5"应该被去除,但是"u2"和"4ever"应该保留,即输出应该为:
I listened to u2 albums today
meet me at
squad 4ever
我一直在尝试使用这段代码
for line in fileinput.input("input.txt", inplace=True):
new_s = ""
for word in line.split(' '):
if not all(char.isdigit() for char in word):
new_s += word
new_s += ' '
print(new_s, end='')
这与我在这里找到的代码非常相似:从字符串中删除混合数字和字母
但是,我得到的输出不是想要的。
I listened to u2 albums today
meet me at 5
squad 4ever
正如您所看到的,这里有两个问题,首先只有第一行失去了我想要丢弃的数字,“5”仍然存在于第二行。第二个问题是在新行开头的额外空格。
我已经玩弄了代码一段时间并浏览了stackoverflow,但找不到问题出现的地方。有什么见解吗?
\n
结尾。这不是数字,因此它通过了if语句的判断,而额外的空格是因为您在for循环中每次都添加了一个空格,包括行末的最后一个单词。 - yinnonsanders