0

我对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])
4

1 回答 1

0

在循环之前创建 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])
于 2021-08-13T07:10:27.907 回答