我想在CSV文件中写入特定文件夹的文件名(以便批量上传到Internet存档)。 CSV必须以规定的格式写入。
我尝试过以下代码:
import os
import csv
path = '/media/sarada/Lectures & Ebooks/Ebooks/03-Bengali Books/18.Darshan'
with open('/home/sarada/ia_csv.csv', 'wb') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['identifier', 'file', 'description', 'subject[0]', 'title', 'creator', 'date', 'collection'])
for dirpath, _, filenames in os.walk(path):
if filenames:
writer.writerow([os.path.basename(dirpath)] + filenames)
现在文件名正在连续打印,即它们覆盖description
,title
,creator
等字段。
问题:
文件名只能打印在file
列中。
如何仅打印文件名(剥离扩展部分)
title
列?
如何在中添加字符串(例如opensource
)
writer.writerow([os.path.basename(dirpath)] + filenames)
以便
creator
列包含该字符串?
答案 0 :(得分:1)
对于简单的CSV编写器,您必须提供每个字段(实际上您已经为标题行执行了此操作)。这有点单调乏味,您可能要考虑使用DictWriter 更容易理解/理解。
import os
import csv
path = 'YOUR_INPUT_DIRECTORY'
with open('YOUR_OUTPUT_FILE', 'wb') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['identifier', 'file', 'description', 'subject[0]', 'title', 'creator', 'date', 'collection'])
for root, dirs, files in os.walk(path):
for filename in files:
writer.writerow(['', os.path.join(root,filename), '','','', 'opensource','',''])
答案 1 :(得分:0)
from PIL import Image
import csv
data=[]
with open('images.csv', 'w', newline='') as writeFile:
writer = csv.writer(writeFile)
for filename in os.listdir("ahmad"):
data.append(filename)
writer.writerow(data)
data=[]
writeFile.close()