猿问

如何将多个图像从一个文件夹移动到python中的另一个文件夹?

我正在尝试使用 将多个图像从一个文件夹移动到另一个文件夹shutil.move(),我已将图像名称保存在 CSV 文件中。前任:[img1 , img25, img55....]


我试过下面的代码


import pandas as pd

import shutil


cop_folder = path to folder containing images    

destination_folder = path wher i want to move the images



df = pd.read_csv('', header = None)    

for i in df:       

    if i in cop_folder:

        shutil.move( i, dest_folder)

    else:

        print('fail')

TypeError: 'in' 需要字符串作为左操作数,而不是 int


慕慕森
浏览 150回答 2
2回答

烙印99

试试这个方法:import pandas as pdimport osdef 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')

长风秋雁

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

相关分类

Python
我要回答