从文本文件python3.3中删除非数字字符

2024-04-20 04:06:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我的任务是从文本文件中删除所有非数字字符(包括空格),然后在旧字符旁边打印新结果,例如:

在此之前:

sd67637 8

ssheiej44

之后:

^{pr2}$

由于我是个初学者,我不知道从哪里开始这项任务。我遵循了另一个用户的指示,但我不太清楚地阐述到目前为止我所拥有的。在

text1 = open('/Users/student/Desktop/Harry.txt', 'r')
data = text1.readlines()
new_string = ''.join(ch for ch in data if ch.isdigit())
print(data, '=', new_string)

但它仍然没有给我如上面所示的预期效果。相反,我得到的是:

    [] = 

有人能帮我解决这个问题并用外行的术语解释一下吗。在


Tags: 用户newdatastring数字opench字符
2条回答

和我在你的previous questionhere上给你的答案差不多。在

from string import ascii_letters

with open('/Users/student/Desktop/Harry.txt') as f:
    for line in f:
        print (line, '=', line.translate(None, ascii_letters+' '))

您没有调用text1.readlines方法。添加()

data = text1.readlines()

注意,像text1这样的文件对象可以作为迭代器工作。不需要调用.readlines();只需直接在text1上循环。您的代码仍然需要调整;.readlines()text1都提供了一系列

^{pr2}$

在您的版本中,ch一次从文件中分配了一整行,由于每行至少包含一个新行,.isdigit()将始终为False。在

相关问题 更多 >