2016-09-18 32 views
-1

我有一個CSV文件,其中包括文件的列表: 諾姆 沙漠 繡球 水母 考拉 燈塔 企鵝 鬱金香 我會在此WWAY出口從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']) 

我可以打印文件的名稱:想從一個目錄到另一個目錄下創建一個腳本與Python拷貝文件的這個名單,我可以做到這一點。 你能幫我完成只複製列表文件的代碼嗎? 謝謝。 enter code here

+0

你試過['shutil.copy()'](https://docs.python.org/3/library/shutil.html#shutil .copy)或'shutil.copytree()'? –

+0

我無法解決:-( – user118850

+0

你能否在CSV文件中包含幾行你正在解析的行,以便我們知道該格式是什麼? –

回答

0

的問題是,os.listdir()返回包含在你給它的目錄中的文件列表 - 在這種情況下,「C:\測試」。

之後,當您嘗試連接source與各個文件時,您將嘗試將列表與str組合在一起。這就是爲什麼你得到TypeError

如果所有的文件都在「C:\測試」直接包含,那麼你就可以刪除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()也爲建設文件路徑了一個更好的解決方案。

+0

【答案】我嘗試運行腳本我糾正了我,但我有錯誤: shutil.copyfile(os.path.join(source,['nome']),destination) 文件「C:\ Python27 \ lib \ ntpath.py」,第85行,in加入 result_path = result_path + p_path TypeError:無法連接'str'和'list'對象 >>> – user118850

+0

對不起,腳本中有一個小錯字 - 應該工作n流。 –

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'])) 
相關問題