【问题标题】:Make a word list from any document in python从python中的任何文档制作单词列表
【发布时间】:2019-03-19 13:29:43
【问题描述】:

我想从任何文本文档中输出一个简单的单词列表。我希望列出每个单词,但不要重复。这就是我所拥有的,但它没有做任何事情。我对python相当陌生。谢谢!

def MakeWordList():
    with open('text.txt','r') as f:
        data = f.read()
    return set([word for wordd])

【问题讨论】:

  • 您好!欢迎来到 StackOverflow。看到您正在尝试从 rtf 文件中读取,也许您可​​以先查看所有返回的单词,而无需先进行任何过滤;你得到了什么?另外,也许你应该使用isalpha()而不是islower()
  • 我将其编辑为我要查找的内容。我发布的代码是我正在使用的示例代码。
  • 但是现在您的示例代码是无稽之谈:-/ 请提供您迄今为止尝试过的内容;在这里它甚至没有运行。

标签: python text document word


【解决方案1】:

for word in data 循环基本上迭代data,它是字符串,所以你的word 循环变量在每次迭代中得到一个字符。您可能希望使用 data.split() 之类的东西来遍历单词列表。

【讨论】:

【解决方案2】:

你不能像这样遍历你读取的数据,因为它们是一个字符串,因此你会得到连续的字符,但是你可以用空格分割字符串,这会给你一个单词列表

def MakeWordList():
    with open('possible.rtf','r') as f:
        data = f.read()
    return set([word for word in data.split(' ') if len(word) >= 5 and word.islower() and not 'xx' in word])

【讨论】:

  • data.split(' ') 不会在换行符处拆分。你会得到一些奇怪的结果,比如 'name\nand' ,其中 '\n' 是换行符。看来@taras 推荐data.split() 可以解决这个问题。
  • 它仍然不打印任何东西。 def MakeWordList(): with open('test.txt','r') as f: data = f.read() return set([word for word in data.split()]) print()
  • print() 确实不打印任何内容。试试print(MakeWordList())
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多