Я знаю, что есть несколько сообщений, которые касаются этого, но я еще не нашел тот, который работает для меня. Мне нужно создать список файлов с расширением .mxd, выполнив поиск в полностью сопоставленной директории. Я использовал этот код, и он работает:os.walk on non c каталог диска
import os
file_list = []
for (paths, dirs, files) in os.walk(folder):
for file in files:
if file.endswith(".mxd"):
file_list.append(os.path.join(paths, file))
Однако он работает только на диске C. Мне нужно иметь возможность искать эти файлы на сопоставленном диске по своему выбору. Вот сценарий, который я использую, но он не работает. Я знаю, что есть файл mxd в подкаталоге этого диска, но он не сообщается в списке файлов. Фактически, список файлов полностью пуст, и этого не должно быть.
import os
path = r"U:/TEST/"
filenamelist = []
for files in os.walk(path):
if file.endswith(".mxd"):
filenamelist.append(files)
Видит ли кто-то ничего плохого в моем втором блоке коды, который бы ProVent его из итерации подкаталогов на данном пути и отчетные файлы с расширением .mxd?
unutbu, это работает. Но когда я указываю путь, такой как r'U: \\ ', в результате перечисляется путь с четырьмя обратными косыми чертами после буквы буквы U и двумя обратными косыми чертами после каждой папки. Есть ли способ немного почистить это. Мой скрипт должен сканировать, начиная с корня диска. – user23469
Ну ... Думаю, у ArcGIS нет проблем с четырьмя обратными косыми чертами после буквы диска. Выглядит странно, но это работает. Спасибо за вашу помощь!! – user23469
Что вы видите, это escape-последовательность. '' \\ ''- это Python' str', представляющий * one * обратную косую черту.См. Страницу документа [«Строковые литералы»] (http://docs.python.org/2/reference/lexical_analysis.html#string-literals). – unutbu