如何标记所有子文件夹中的所有文件

2024-09-28 23:28:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由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}$

我尝试将前两个函数合并为一个,并确保它将读取文件,但这次它只返回第一个子文件夹的第一个文件的标记。如果你知道如何解决这个问题或更好的方法,你的帮助将不胜感激!谢谢。在


Tags: 文件pathin标记文件夹forgetreturn