我試圖創建一個shell腳本,將文件從一臺計算機(員工的舊計算機)複製到另一臺(員工的新計算機)。我已經到了可以複製文件的地步,這要感謝可愛的人在這裏,但是我遇到了一個問題 - 如果我從這個目錄有兩個文件:Python:複製文件時創建文件夾
C :\ Users \ specificuser \ Documents \測試文件夾 ....到這個目錄... C:\ Users \ specificuser \ Desktop ...我看到文件顯示在桌面上,但文件夾這些文件是(測試文件夾)中未創建。
這裏是我使用的複製功能:
#copy function
def dir_copy(srcpath, dstpath):
#if the destination path doesn't exist, create it
if not os.path.exists(dstpath):
os.makedir(dstpath)
#tag each file to the source path to create the file path
for file in os.listdir(srcpath):
srcfile = os.path.join(srcpath, file)
dstfile = os.path.join(dstpath, file)
#if the source file path is a directory, copy the directory
if os.path.isdir(srcfile):
dir_copy(srcfile, dstfile)
else: #if the source file path is just a file, copy the file
shutil.copyfile(srcfile, dstfile)
我知道我需要在目的地創建目錄,我只是不太清楚如何去做。
編輯:我發現我有一個類型(os.makedir而不是os.mkdir)。我測試了它,它創建了它應該的目錄。但是我希望它能從創建目錄的一層開始創建目錄。例如,在測試文件夾中有子測試文件夾。它創建了子測試文件夾,但不會創建測試文件夾,因爲測試文件夾不是dstpath的一部分。那有意義嗎?
@PaulK。我已經把它作爲函數的第一件事了。但是,我認爲問題在於我的「目標」是桌面 - 我沒有將Desktop \ Test Folder指定爲目標,所以測試文件夾永遠不會被創建。 –
我道歉,我沒有看到。所以問題是該副本不能遞歸地工作? –
@ PaulK.I編輯了我原來的帖子,但真正的問題是,我希望它從我開始的地方上升一級。如果我將Documents \ Test文件夾中的所有內容都移動到桌面,我希望它也創建Desktop \ Test文件夾,即使技術上我沒有將目標指定爲Desktop \ Test Folder,但我指定了Desktop。 –