我想將某個文件複製到指定的路徑。這個指定的路徑有很多目錄的層次結構,這些目錄不是預先存在的,需要在複製過程中創建。使用Python複製文件到路徑
我試過shutil.copy*
函數,但它們似乎都要求預先創建目標路徑中的目錄。
是否有任何功能根據需要設置這些目錄並複製文件?
用法示例:
copy_file('resources/foo.bar', expanduser('~/a/long/long/path/foo.bar'))
我想將某個文件複製到指定的路徑。這個指定的路徑有很多目錄的層次結構,這些目錄不是預先存在的,需要在複製過程中創建。使用Python複製文件到路徑
我試過shutil.copy*
函數,但它們似乎都要求預先創建目標路徑中的目錄。
是否有任何功能根據需要設置這些目錄並複製文件?
用法示例:
copy_file('resources/foo.bar', expanduser('~/a/long/long/path/foo.bar'))
您可以使用os.makedirs
遞歸創建你所需要的樹形圖,然後使用shutil.copy
。
target_dir = os.path.expanduser('~/a/long/long/path')
os.makedirs(target_dir)
shutil.copy('resources/foo.bar', os.path.join(target_dir, 'foo_bar'))
這樣,你在分解任務管理問題(創建然後複製),它可以讓你處理這種情況的目錄崩潰的創建(繼「明確優於隱式」)的情況下。
[makedirs]的參數由['os.path.dirname'](http://docs.python.org/library/os.path.html#os.path.dirname)給出。 – katrielalex
我的+1。如果目標目錄不存在,並且您想複製整個樹,也可以使用'shutil.copytree()'。 – pepr
您可以在複製之前執行['mkdir -p'等價操作](http://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python)。 –