Используйте отладчик и смотрите переменную datfiles
. Есть ли в действительности все пути к файлам? glob.glob
не работает рекурсивно по умолчанию, если вы не укажете явно. Вы можете попробовать для этого:
datfiles = glob.glob(os.path.join(datfolder, '**/*.dat'), recursive=True)
Я заполнял образец только с двумя текстовыми файлами в тестовом каталоге. И я получил это на работу. Я бы порекомендовал начать с нового venv, кроме того, поместите ваш скрипт python и 2 тестовых файла. Затем запустите свой код. Так и должно быть, мой тоже.
Просто примечание: проверьте отступ и '.'
в последней строке (перед комментарием).
tst.txt:
1 sifasf ncadasfdv
2 asfdias askfnhoas
tst1.txt:
1 ddsds
2 asfdgasfg
3 asgas
скрипт:
#! /path/to/your/venv/python/interprter
from io import open
from conllu import parse_incr
import os
import glob
#create a dict to store the results
word_lemma_dict = {}
ud_files = []
dat_files = []
#open the files and load the sentences to a list
datfolder = "./" #Folder where all the .txt files are stored.
datfiles = glob.glob(os.path.join(datfolder, '*.txt'))
print(datfiles)
for file in datfiles:
data_file = open(file, "r", encoding = "utf-8")
for tokenlist in parse_incr(data_file):
ud_files.append(tokenlist)
print(ud_files)
и вывод:
['./tst1.txt', './tst.txt']
[TokenList<ddsds, asfdgasfg, asgas>, TokenList<sifasf, asfdias>]
Бьюсь об заклад, вы можете добавить больше файлов, и это будет делать ...
Я предполагаю, что это путь / присоединиться или грамматика к проблеме синтаксического анализатора conllu
.
Вы можете опубликовать некоторое содержимое ваших различных файлов *.dat
для анализа в соответствии с вашими ожиданиями.