虽然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