加载仅带有扩展名的文件

时间:2018-09-19 02:14:15

标签: python gensim word2vec

我只想为gensim中的扩展名加载文件。

正常代码是这样:

model = gensim.models.word2vec.Word2Vec.load("news.bin")

但是我希望它使用“ .bin”自动打开任何文件。

示例:

model = gensim.models.word2vec.Word2Vec.load(***I would like to change this part to only load any .bin***)

.bin文件:

它可以是“ news.bin”,“ file.bin”或“ guess.bin”。只要它仅加载扩展名。谢谢。

2 个答案:

答案 0 :(得分:1)

glob库非常适合:

from glob import glob

for file_name in glob('*.bin'):
    model = gensim.models.word2vec.Word2Vec.load(file_name)

这将根据Unix样式路径名模式扩展遍历所有与*.bin匹配的文件。

答案 1 :(得分:1)

如果要一个一个地打开 ALL ,可以遍历目标目录中的文件。

这是Python 3的代码示例。

import os

directory_path = "/path/to/directory"

for filename in os.listdir(directory_path):
    if filename.endswith(".bin"): 
        file_path = os.path.join(directory_path, filename)
        model = gensim.models.word2vec.Word2Vec.load(file_path)
        # Do whatever you want to do with model

如果您只想打开其中的任何一个,则可以在第一个匹配项后退出for循环:

import os

directory_path = "/path/to/directory"

for filename in os.listdir(directory_path):
    if filename.endswith(".bin"): 
        file_path = os.path.join(directory_path, filename)
        model = gensim.models.word2vec.Word2Vec.load(file_path)
        # Do whatever you want to do with model
        # Break out of the for loop afterwards so it stops iterating
        break