Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取文件并查找唯一的单词集_Python_Python 3.x - Fatal编程技术网

Python 读取文件并查找唯一的单词集

Python 读取文件并查找唯一的单词集,python,python-3.x,Python,Python 3.x,我对python/or编程是个新手。 我有一个由两个.txt文件组成的文件夹。我想读取这些文件并创建一个数据结构来存储这些文件中的所有唯一单词。这是我写的, import glob import errno path = '/path/to/my/files/*.txt' files = glob.glob(path) for name in files: try: with open(name, encoding="ISO-8859-1") as f:

我对python/or编程是个新手。 我有一个由两个.txt文件组成的文件夹。我想读取这些文件并创建一个数据结构来存储这些文件中的所有唯一单词。这是我写的,

import glob
import errno
path = '/path/to/my/files/*.txt'
files = glob.glob(path)

for name in files:
    try:
        with open(name, encoding="ISO-8859-1") as f:
            f.read()
    except IOError as exc:
        if exc.errno != errno.EISDIR:
            raise
但是我不知道如何修改程序来找到唯一的单词。如果你能指导我,我将不胜感激。谢谢。

您可以这样做:

import glob
import errno
path = '/path/to/my/files/*.txt'
files = glob.glob(path)

unique = dict()

for name in files:
   try:
       with open(name, encoding="ISO-8859-1") as f:
           data = f.read()
           for word in data.split(' '):
               if word.strip():
                   unique[word] = word

    except IOError as exc:
        if exc.errno != errno.EISDIR:
            raise

print unique.keys()
您可以这样做:

import glob
import errno
path = '/path/to/my/files/*.txt'
files = glob.glob(path)

unique = dict()

for name in files:
   try:
       with open(name, encoding="ISO-8859-1") as f:
           data = f.read()
           for word in data.split(' '):
               if word.strip():
                   unique[word] = word

    except IOError as exc:
        if exc.errno != errno.EISDIR:
            raise

print unique.keys()

[已编辑]已将字典更改为设置

  • 使用集合保存单词
  • 我建议您创建一个函数来读取文件,然后在for中使用它
  • 例如:

    term_list = set()
    
    def unique_words(path+"filename.txt"):
        text = open(path+"filename.txt","r")
    
        for line in text:
            if line != '\n':
                line = line.strip().split(' ')
                for word in line:
                    term_list.add(word)
    return
    

    [已编辑]已将字典更改为设置

  • 使用集合保存单词
  • 我建议您创建一个函数来读取文件,然后在for中使用它
  • 例如:

    term_list = set()
    
    def unique_words(path+"filename.txt"):
        text = open(path+"filename.txt","r")
    
        for line in text:
            if line != '\n':
                line = line.strip().split(' ')
                for word in line:
                    term_list.add(word)
    return
    
    尝试将“encoding=”拉丁语-1“添加到open函数中。所以 使用open(name,encoding=“latin-1”)作为f:

    尝试将“encoding=“latin-1”添加到open函数中。所以
    使用open(name,encoding=“latin-1”)作为f:

    open
    默认情况下以文本模式打开和读取,这要求它知道文件的正确编码(默认的
    utf-8
    显然是错误的)。Python文档说明如何将编码设置为
    open
    @MichaelButscher的参数。谢谢你,在你发表评论之前,我修复了它并编辑了我的原始帖子。您能否提供一些见解,如何实现查找唯一的单词?
    open
    默认情况下以文本模式打开和读取,这要求它知道文件的正确编码(默认的
    utf-8
    显然是错误的)。Python文档说明如何将编码设置为
    open
    @MichaelButscher的参数。谢谢你,在你发表评论之前,我修复了它并编辑了我的原始帖子。你能提供一些见解,如何实现查找唯一单词吗?我想你在
    unique\u words
    的参数列表中有一个输入错误。不应该有加号。也许你的意思只是路径。你还应该指出,除了所要求的之外,你还计算每个单词的使用次数。
    else:continue
    是多余的。最后,您需要调用您定义的函数,使其成为一个完整的程序。不管怎样,这是一个很有帮助的答案。我想你在参数列表中输入了
    unique\u words
    。不应该有加号。也许你的意思只是路径。你还应该指出,除了所要求的之外,你还计算每个单词的使用次数。
    else:continue
    是多余的。最后,您需要调用您定义的函数,使其成为一个完整的程序。无论如何,这是一个有用的答案。