загрузить файл только с расширением - PullRequest
0 голосов
/ 19 сентября 2018

Я бы хотел загрузить файл только с его расширением в 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 голосов
/ 19 сентября 2018

Если вы хотите открыть 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
0 голосов
/ 19 сентября 2018

Библиотека glob идеально подходит для этого:

from glob import glob

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

Это зациклит все файлы, которые соответствуют *.bin в соответствии с расширением шаблона имени стиля Unix.

...