Я довольно новичок в python, но я стараюсь изучить основы, которые помогут в моих исследованиях в области геологии.Перемещение определенных файлов в подкаталоги в каталог - python
В любом случае у меня есть несколько файлов, которые, как только я извлек из их zip-файлов (мучительно медленный процесс btw), производят несколько сотен подкаталогов с 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'
Любая помощь была бы очень признательна, и я заранее благодарю вас за ваше время.
С уважением,
Bjorn
Привет, Марк, спасибо за ваш ответ. Извините, мой английский, вероятно, не самый лучший, что я хотел сказать, это то, что я запускаю программу в окне оболочки, набрав в move(), и все работает нормально без shutil.move, но как только я добавлю его, я получаю следующую ошибку. AttributeError: объект «list» не имеет атрибута «endswith» – BJEBN
@ user1041814: эта ошибка возникает из-за первого и второго пунктов, упомянутых выше - ваши 'файлы' на самом деле список подкаталогов в каждом каталоге в шаге. –
Еще раз спасибо за предложения! Его иногда всегда самые простые ошибки, такие как получение порядка функции os.walk, которая вас достает! – BJEBN