我想在CSV文件中写入特定文件夹的文件名(用于批量上传到Internet Archive)。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列包含该字符串?发布于 2017-11-16 12:42:53
对于简单的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','',''])发布于 2019-09-28 16:24:34
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()https://stackoverflow.com/questions/47329168
复制相似问题