5

我目前正在尝试输入一个文本文件,将每个单词分开并将它们组织成一个列表。

我目前遇到的问题是从文本文件中删除逗号和句点。

我的代码如下:

#Process a '*.txt' file.
def Process():
    name = input("What is the name of the file you would like to read from? ")

    file = open( name , "r" )
    text = [word for line in file for word in line.lower().split()]
    word = word.replace(",", "")
    word = word.replace(".", "")

    print(text)

我目前得到的输出是这样的:

['this', 'is', 'the', 'first', 'line', 'of', 'the', 'file.', 'this', 'is', 'the', 'second', 'line.']

如您所见,“文件”和“行”这两个词的末尾有一个句点。

我正在阅读的文本文件是:

这是文件的第一行。

这是第二行。

提前致谢。

4

3 回答 3

8

这些行没有效果

word = word.replace(",", "")
word = word.replace(".", "")

只需将您的列表组合更改为:

[word.replace(",", "").replace(".", "") 
 for line in file for word in line.lower().split()]
于 2013-03-20T22:53:07.300 回答
6

也许stripreplace

def Process():
    name = input("What is the name of the file you would like to read from? ")

    file = open(name , "r")
    text = [word.strip(",.") for line in file for word in line.lower().split()]
    print(text)
>>> 帮助(str.strip)
关于method_descriptor的帮助:

跳闸(...)
    S.strip([chars]) -> 字符串或 unicode

    返回带有前导和尾随的字符串 S 的副本
    空格被删除。
    如果给出了 chars 而不是 None,则改为删除 chars 中的字符。
    如果 chars 是 unicode,则 S 将在剥离前转换为 unicode
于 2013-03-20T22:53:47.863 回答
0

尝试这个:

 chars = [',', '.']

 word.translate(None, ''.join(chars))

对于 Python3

 chars = [',', '.']
 word.translate({ord(k): None for k in chars})
于 2013-03-20T22:59:08.760 回答