我正在编写一个脚本,以从目录中提取所有文件名,修改名称,然后将名称输出到Excel文件。截至目前,我只是专注于获取要输出到.csv文件的文件名列表,当我这样做时,文件名将显示在水平列表中,每列中一项,而不是垂直列表,标题下的每一行中都有一个项目。
我尝试同时使用writer.writerow(files)和文件中的i:writer.writerow(i)。第一个给我当前的水平输出,第二个给我每个字符水平的分解成一个新的单元格,同时垂直地写出列表。
import os
import csv
path = "C:\\Users\\[REST OF PATH]\\"
files = []
csv_filename = "python_list_test.csv"
#r = root, d = directory, f = files
''' * for r,d,f, in os.walk(path):
for file in f:
if '.txt' in file:
files.append(os.path.join(r,file))
for f in files:
print(f)
'''
for r,d,f in os.walk(path):
for name in f:
if '.pdf' in name:
files.append(name)
for i in files:
print(i)
with open(csv_filename, mode='w',newline='') as c:
writer = csv.writer(c)
writer.writerow(['File Name',])
writer.writerow(files)
我希望代码能给我一个单列列表,每一行都是下一个项目。当我打印前面提到的第二种方法时(对于文件中的i:...),它看起来很完美,但是写入.csv文件会分离出字符。
答案 0 :(得分:3)
只需更改最后一行:
writer.writerows([f] for f in files)