为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕慕森 2022-06-28 16:05:36
我正在尝试使用 将多个图像从一个文件夹移动到另一个文件夹shutil.move(),我已将图像名称保存在 CSV 文件中。前任:[img1 , img25, img55....]我试过下面的代码import pandas as pdimport shutilcop_folder = path to folder containing images    destination_folder = path wher i want to move the imagesdf = 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
查看完整描述

2 回答

?
烙印99

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')


查看完整回答
反对 回复 2022-06-28
?
长风秋雁

TA贡献1757条经验 获得超7个赞

这里有一些问题,首先您正在迭代一个数据框,该数据框将返回列标签而不是值 - 这就是导致您发布的错误的原因。如果您真的想使用 pandas 来导入 CSV,那么您可以将其更改为for i in df.iterrows()但即使这样它也不会简单地返回文件名,它会返回一个系列对象。使用标准 CSV 模块读取 CSV 可能会更好。这样,您的文件名将作为列表读入,并按照您的预期运行。

其次,除非您的代码中有其他内容,否则您无法使用“in”关键字在文件夹中查找文件,您需要通过连接文件名和文件夹路径来构建完整的文件路径。


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信