我有一个由50个子文件夹组成的数据集,每个子文件夹有20-30个没有扩展名的文件。我想做的是标记每个子文件夹文件中的文本,并用子文件夹的名称将其写入文件。例如; 假设subfolder1有25个文件,我想将这25个文件标记在一起,并将其写入名为“subfolder1”的文件中。我想对主文件夹中的所有子文件夹执行此操作。在
我试过这个code的一些部分,但是它给出了权限错误,因为它无法读取文件夹。在
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)
这是它给出的错误:
^{pr2}$我尝试将前两个函数合并为一个,并确保它将读取文件,但这次它只返回第一个子文件夹的第一个文件的标记。如果你知道如何解决这个问题或更好的方法,你的帮助将不胜感激!谢谢。在
尝试使用以下命令从
current
和sub-folders
获取所有文件的内容find . -type f -exec cat {} +
使用
Subprocess.check_output
将输出重定向到变量,并对该变量执行标记化。在相关问题 更多 >
编程相关推荐