Есть ли конкретный метод для печати трех разных путей к файлам в CSV после итерации по папке?
Я все еще новичок в Python и стараюсь изо всех сил учиться. Я пытаюсь получить 3 разных пути к файлам, записанные в csv после итерации по папке. У меня проблема в том, что печатается только первый путь к файлу, который должен быть напечатан. Я надеюсь получить следующий вывод в формате csv:
['C:\\Users\\micha\\Documents\\USGS-NHD DATA\\NHDwaterbody.shp']
['C:\\Users\\micha\\Documents\\USGS-NHD DATA\\VietnamPA_name__Tam Dao.shp']
['C:\\Users\\micha\\Documents\\USGS-NHD DATA\\WBD_11.shp']
Но в итоге я получаю только одно это на выходе:
C:\Users\micha\Documents\USGS-NHD DATA\VietnamPA_name__Tam Dao.shp
Это код, который я придумал в настоящее время. Я был бы признателен за любой вклад относительно того, как я могу получить все три элемента для печати в CSV, а не только один.
import os
import csv
# assign directory
directory = 'C:\\Users\\micha\\Documents\\USGS-NHD DATA'
# iterate over files in
# that directory
for filename in os.listdir(directory):
f = os.path.join(directory, filename)
# checking if it is a file shp
if f.endswith('.shp'):
data= [f]
n = open('C:\\Users\\micha\\Documents\\create.csv','w')
writer = csv.writer(n)
for item in data:
writer.writerows([data])
1 ответ
Перед циклом создайте CSV-файл. если вы сделаете это внутри цикла, он будет перезаписан для каждого файла в каталоге:
with open('C:\\Users\\micha\\Documents\\create.csv','w') as n:
writer = csv.writer(n)
for filename in os.listdir(directory):
f = os.path.join(directory, filename)
# checking if it is a file shp
if f.endswith('.shp'):
writer.writerow([f])