У меня есть набор данных, который состоит из 50 подпапок, и каждая из этих подпапок имеет 20-30 файлов без расширения.То, что я хотел сделать, это маркировать тексты в файлах для каждой подпапки, и записать его в файл с именем подпапки.Например;Допустим, у subfolder1 есть 25 файлов, и я хочу объединить эти 25 файлов вместе и записать их в файл с именем «subfolder1».И я хочу сделать это для всех подпапок в основной папке.
Я пробовал некоторые части этого кода , но он выдает PermissionError, так как не может читать папку.
mainfolder="path\\to\\mainfolder"
def ls(path):
return [os.path.join(path, item) for item in os.listdir(path)]
def load_file_sents(path):
return [sent.lower()
for sent in tokenize.sent_tokenize(open(path).read())]
def load_collection_sents(path):
sents = []
for f in ls(path):
sents.extend(load_file_sents(f))
return sents
def get_sentences(path):
""" loads sentences from the given path (collection or file) """
sents = []
try:
# treat as a single file
open(path).read()
sents = load_file_sents(path)
except IOError:
# it's a directory!
sents = load_collection_sents(path)
return sents
def get_toks(path):
return [tokenize.word_tokenize(sent) for sent in get_sentences(path)]
get_toks(mainfolder)
Это ошибка, которую он выдает:
PermissionError Traceback (most recent call last)
<ipython-input-52-a6f316499b2c> in get_sentences(path)
37 # treat as a single file
---> 38 open(path).read()
39 sents = load_file_sents(path)
PermissionError: [Errno 13] Permission denied:
Я попытался объединить первые две функции в одну и убедиться, что он будет читать файлы, но на этот раз он только что вернулсятокены первого файла первой подпапки.Если вы знаете, как решить эту проблему или лучший способ сделать это, ваша помощь будет принята с благодарностью!Спасибо.