在遍历文件夹后,是否有一种特定的方法可以将 3 个不同的文件路径打印到 csv?

Is there a specific method for printing 3 different files paths to a csv after iterating through a folder?

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

在循环之前创建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])