2 回答
TA贡献1829条经验 获得超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条经验 获得超7个赞
这里有一些问题,首先您正在迭代一个数据框,该数据框将返回列标签而不是值 - 这就是导致您发布的错误的原因。如果您真的想使用 pandas 来导入 CSV,那么您可以将其更改为for i in df.iterrows()
但即使这样它也不会简单地返回文件名,它会返回一个系列对象。使用标准 CSV 模块读取 CSV 可能会更好。这样,您的文件名将作为列表读入,并按照您的预期运行。
其次,除非您的代码中有其他内容,否则您无法使用“in”关键字在文件夹中查找文件,您需要通过连接文件名和文件夹路径来构建完整的文件路径。
添加回答
举报