我有一个包含文件列表的csv文件: 诺姆 沙漠 绣球 海蜇 考拉 灯塔 企鹅 郁金香 我想用python创建一个脚本,将这个文件列表从一个目录复制到另一个目录,我可以这样做:
import csv
import os
import shutil
source = os.listdir("C:\Test")
destination = "C:\Test1"
with open('semplice1.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['nome'])
在这个wway我可以打印文件的名称。
你能帮我完成复制列表文件的代码吗?
感谢。enter code here
答案 0 :(得分:0)
问题是os.listdir()
会返回您提供的目录中包含的文件的列表 - 在本例中为“C:\ test”。
稍后,当您尝试将source
与单个文件连接时,您就可以尝试将列表与str组合在一起。这就是您获得TypeError
。
如果所有文件都直接包含在“C:\ test”中,那么您可以删除os.listdir()
并执行:
import csv
import os
import shutil
source = "C:\Test"
destination = "C:\Test1"
with open('semplice1.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['nome'])
a = row['nome']
shutil.copyfile(os.path.join(source, a), destination)
请注意,使用os.path.join()
也可以作为构建文件路径的更好解决方案。
答案 1 :(得分:0)
我用这段代码解决了我的问题:
import csv
import os
import shutil
source = "C:\Test"
destination = "C:\Test1"
with open('semplice1.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['nome'])
shutil.copyfile(os.path.join(source, row['nome']), os.path.join(destination, row['nome']))