2 回答

TA貢獻1829條經(jīng)驗 獲得超13個贊
試試這個方法:
import pandas as pd
import os
def move_file(old_file_path, new_directory):
if not os.path.isdir(new_directory):
os.mkdir(new_directory)
base_name = os.path.basename(old_file_path)
new_file_path = os.path.join(new_directory, base_name)
# Deletes a file if that file already exists there, you can change this behavior
if os.path.exists(new_file_path):
os.remove(new_file_path)
os.rename(old_file_path, new_file_path)
cop_folder = 'origin-folder\\'
destination_folder = 'dest_folder\\'
df = pd.read_csv('files.csv', header=None)
for i in df[0]:
filename = os.path.join(cop_folder, i)
move_file(filename, destination_folder)
csv 中的文件名必須有擴展名。如果他們沒有,那么你應該使用 filename = os.path.join(cop_folder, i + '.jpg')

TA貢獻1757條經(jīng)驗 獲得超7個贊
這里有一些問題,首先您正在迭代一個數(shù)據(jù)框,該數(shù)據(jù)框將返回列標簽而不是值 - 這就是導致您發(fā)布的錯誤的原因。如果您真的想使用 pandas 來導入 CSV,那么您可以將其更改為for i in df.iterrows()
但即使這樣它也不會簡單地返回文件名,它會返回一個系列對象。使用標準 CSV 模塊讀取 CSV 可能會更好。這樣,您的文件名將作為列表讀入,并按照您的預期運行。
其次,除非您的代碼中有其他內(nèi)容,否則您無法使用“in”關鍵字在文件夾中查找文件,您需要通過連接文件名和文件夾路徑來構建完整的文件路徑。
添加回答
舉報