2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
試試這個(gè)方法:
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 中的文件名必須有擴(kuò)展名。如果他們沒(méi)有,那么你應(yīng)該使用 filename = os.path.join(cop_folder, i + '.jpg')

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