雖然Python對我來說很新,但我一直在嘗試學習基礎知識,以幫助我在地質學的研究。將子目錄中的特定文件移動到一個目錄 - python
反正我有幾個文件,一旦我從他們的zip文件中提取(痛苦緩慢的過程順便說一句),產生數百個子目錄,每個子目錄有2-3個文件。現在我想要做的是提取所有以'dem.tif'結尾的文件,並將它們放在一個單獨的文件中(移動而不是複製)。
我可能試圖跳到這裏的深處,但我寫的代碼運行時沒有錯誤,所以它不能找到文件(它確實存在!),因爲它給了我else語句。這裏是我創建的代碼
import os
src = 'O:\DATA\ASTER GDEM\Original\North America\UTM Zone 14\USA\Extracted' # input
dst = 'O:\DATA\ASTER GDEM\Original\North America\UTM Zone 14\USA\Analyses' # desired location
def move():
for (dirpath, dirs, files) in os.walk(src):
if files.endswith('dem.tif'):
shutil.move(os.path.join(src,files),dst)
print ('Moving ', + files, + ' to ', + dst)
else:
print 'No Such File Exists'
任何幫助將不勝感激,我提前感謝您的時間。
真誠,
比約恩
嗨馬克,感謝您的回覆。對不起,我的英文可能不是最好的,我的意思是說,我正在shell窗口中運行程序,方法是輸入move(),並且沒有shutil就可以正常運行。移動語句,但只要我添加它,我得到以下錯誤AttributeError:'列表'對象沒有屬性'endswith' – BJEBN
@ user1041814:該錯誤是因爲我提到的第一和第二點 - 上述'文件'實際上步行中每個目錄中的子目錄列表。 –
再次感謝您的建議!它有時總是最簡單的錯誤,如獲取os.walk函數的順序,讓你! – BJEBN