How to copy folder structure under another directory?

后端 未结 3 1345
日久生厌
日久生厌 2021-02-15 23:51

I have some questions related to copying a folder structure. In fact, I need to do a conversion of pdf files to text files. Hence I have such a folder structure for the place wh

相关标签:
3条回答
  • 2021-02-16 00:26

    How about using shutil.copytree()?

    import shutil
    def ig_f(dir, files):
        return [f for f in files if os.path.isfile(os.path.join(dir, f))]
    
    shutil.copytree(inputpath, outputpath, ignore=ig_f)
    

    The directory you want to create should not exist before calling this function. You can add a check for that.

    Taken from shutil.copytree without files

    0 讨论(0)
  • 2021-02-16 00:31

    For me the following works fine:

    • Iterate over existing folders

    • Build the structure for the new folders based on existing ones

    • Check, if the new folder structure does not exist
    • If so, create new folder without files

    Code:

    import os
    
    inputpath = 'D:/f/'
    outputpath = 'D:/g/'
    
    for dirpath, dirnames, filenames in os.walk(inputpath):
        structure = os.path.join(outputpath, dirpath[len(inputpath):])
        if not os.path.isdir(structure):
            os.mkdir(structure)
        else:
            print("Folder does already exits!")
    

    Documentation:

    • os.walk
    • os.mkdir
    • os.path.isdir
    0 讨论(0)
  • 2021-02-16 00:34

    A minor tweak to your code for skipping pdf files:

    for root, dirs, files in os.walk('.', topdown=False):
        for name in files:
            if name.find(".pdf") >=0: continue
            with open("D:/g/"+ ,mode="w") as newfile:
                newfile.write(c.convert_pdf_to_txt(os.path.join(root, name)))
    
    0 讨论(0)
提交回复
热议问题