2017-04-12 108 views
0

我想寫我的第一個Python腳本,並且它不順利。Python/Ubuntu - 將目錄複製到新目錄(不正確的目錄路徑?)

我想在我的Ubuntu機器上覆制整個本地目錄,並將它和它的內容放在另一個OS上。我做了一些研究,發現distutils.dir_util.copy_tree(src,dst)應該這樣做。

這是我backup_images.py文件的內容:

import os 
import sys 

src = '/nodeGit/code/assets/images' 
dst = '/usr/images_backup' 

distutils.dir_util.copy_tree(src,dst) 

當我運行它,我在每一行出現錯誤(S)。當我運行在終端./backup_images.py,這是輸出:基於第一對夫婦的錯誤

./backup_images.py: 1: ./backup_images.py: src: not found 
./backup_images.py: 2: ./backup_images.py: dst: not found 
./backup_images.py: 4: ./backup_images.py: Syntax error: word unexpected (expecting ")") 

./backup_images.py: line 1: src: command not found 
./backup_images.py: line 2: dst: command not found 
./backup_images.py: line 4: syntax error near unexpected token `src,dst' 
./backup_images.py: line 4: `distutils.dir_util.copy_tree(src,dst)' 

如果我運行使用sudo(sudo ./backup_images.py)相同的命令,我得到完全不同的錯誤(src: not founddst: not found),似乎Python無法找到我分配給srcdst文件的目錄。它是否正確?

由於更改錯誤,我不確定如何修復我的代碼。

+2

的可能的複製[無法運行從膩子.py文件,語法錯誤:意外字(預期「)」)(http://stackoverflow.com/questions/33075561/unable-to-run- py-file-from-putty-syntax-error-word-unexpected-expectcting) –

+3

看起來你正在執行帶有bash shell而不是python'二進制文件的''py''腳本。 –

+0

是的,這似乎是問題。謝謝。現在我收到一個錯誤,'名字'distutils'沒有定義',但如果我無法修復它/我自己找到答案,那麼我可能必須爲此打開一個新的問題? .. – velkoon

回答

2

請勿使用distutils來做到這一點。請使用shutil.copytree()來執行目錄及其所有文件和子目錄的遞歸副本。

import shutil 

src = '/nodeGit/code/assets/images' 
dst = '/usr/images_backup' 

try: 
    shutil.copytree(src,dst) 
except shutil.Error as exc: 
    # handle any exception that might occur 
    print("Got exception {} while copying {} to {}".format(exc, src, dst))