载入只有扩展名的文件

load a file with only its extension name

我想在 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"。只要它只加载扩展名。谢谢。

glob 库非常适合这个:

from glob import glob

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

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

如果要一一打开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