删除标点符号,输出剩余文本Python 3函数

删除标点符号,输出剩余文本Python 3函数,python,python-3.x,Python,Python 3.x,我希望通过函数运行此文件,然后在删除整数或数字后输出剩余文本。下面是我的python代码: theFile=open("home/filepath/file",'rt', encoding= 'latin-1').read() words= the_file.split() def replace_numbers(words): new_words=[] for word in words: new_word= re.sub(" \d+", " ", word)

我希望通过函数运行此文件,然后在删除整数或数字后输出剩余文本。下面是我的python代码:

theFile=open("home/filepath/file",'rt', encoding= 'latin-1').read()
words= the_file.split()

def replace_numbers(words):
    new_words=[]
    for word in words:
        new_word= re.sub(" \d+", " ", word)
        if new_word !='':
            new_words.append(new_word)
    return new_words

replace_numbers(words)
以下是文件中的一些示例文本:

soccerfif@yahoo.com1964年1月12日,杰弗里·普雷斯顿·乔根森出生于1964年1月5日和4日

我希望输出为:

soccerfif@yahoo.com杰索斯于1964年1月12日出生于杰弗里·普雷斯顿·乔根森,也是

所以基本上从文本文件中删除所有整数。很简单


有没有一种方法可以返回删除文件中所有数字的结果,然后输出剩下的数字我知道问题可能出在if
new\u word!=''
:部分,但我似乎找不到问题。

如果你只想删除所有数字部分,你甚至不需要
re
。只需
拆分
然后保留所有
不是数字的部分

>>> text = "soccerfif@yahoo.com 366-44-4444 Jezos was born Jeffrey Preston Jorgensen on January 12, 1964, also 5 and 4"
>>> [word for word in text.split() if not word.isdigit()]
['soccerfif@yahoo.com', '366-44-4444', 'Jezos', 'was', 'born', 'Jeffrey', 'Preston', 'Jorgensen', 'on', 'January', '12,', '1964,', 'also', 'and']
>>> ' '.join(_)
'soccerfif@yahoo.com 366-44-4444 Jezos was born Jeffrey Preston Jorgensen on January 12, 1964, also and'

可能重复的请通过显示几行示例输入数据以及预期输出,使这成为一个完整的问题。
words=file.split()
应该是
words=file.split()
我想指出,12、1964、366、44和4444都是整数。您似乎不想从文件中删除所有整数,只想删除…个位数的整数?请更精确。标题上还写着“删除标点符号”“但接下来你会谈到整数。这是哪一个?非常好而且干净的回答!如果我需要删除所有数字或字符怎么办?只是为了know@Salam要删除所有数字,只需迭代字符,而不是单词:
[c代表文本中的c,如果不是c.isdigit()]
。用于删除所有字符。。。嗯,
new\u text=“
应该这样做,我想?你会如何将其纳入我的代码中?使用文本文件?@JamesDavinport只需将
文件.split()
放在我使用
text.split()