【问题标题】:Is there a way to copy files from one folder to another using a subtext of that file name in python?有没有办法在 python 中使用该文件名的子文本将文件从一个文件夹复制到另一个文件夹?
【发布时间】:2021-03-12 15:30:49
【问题描述】:

我有一个本地文件夹中所有可用文件的列表:

['13.643636,100.346960_5',
 '13.643636,100.350394_6',
 '13.643636,100.353828_7',
 '13.643636,100.357262_8',
 '13.643636,100.360696_9',
 '13.643636,100.364130_10',
 '13.643636,100.367564_11',
 '13.643636,100.370998_12',
 '13.643636,100.374432_13',
 '13.643636,100.377866_14',
 '13.643636,100.381300_15',
 '13.643636,100.384734_16']

我的文件夹中有图像,例如“13.643636,100.346830_5.png”, '13.643636,100.350664_6.png', '13.643636,100.353938_7.png', '13.643636,100.357452_8.png', '13.643636,100.360786_9.png'等

这些值表示 lat_long_sequence。序列是下划线后的值。

现在,我有 10000 张这些照片,但列表中的经纬度与文件夹中的不匹配,但其顺序完全匹配。

有没有办法,我可以使用这个序列找到一个文件夹中的所有图像并将其复制到本地另一个文件夹?

我有一个文件夹,里面有名为“my_folder”的所有图像。我的列表是“my_list”,我想根据“my_list”将图像复制到的文件夹是“proc_folder”。

感谢任何帮助。

谢谢。

【问题讨论】:

  • 所以基本上你想复制具有相同序列号的文件,无论纬度/经度如何?

标签: python python-3.x pandas string list


【解决方案1】:

从 my_list 中获取 seq 并将其存储在 seq_list 中。 然后从 my_folder 中移动包含 seq_list 中的 seq 的文件

代码:

import shutil
import os

my_list = ['13.643636,100.346960_5',
 '13.643636,100.350394_6',
 '13.643636,100.353828_7',
 '13.643636,100.357262_8',
 '13.643636,100.360696_9',
 '13.643636,100.364130_10',
 '13.643636,100.367564_11',
 '13.643636,100.370998_12',
 '13.643636,100.374432_13',
 '13.643636,100.377866_14',
 '13.643636,100.381300_15',
 '13.643636,100.384734_16']
 
seq_list = ['_' + ele.split('_')[1] for ele in my_list]
# ['_5', '_6', '_7', '_8', '_9', '_10', '_11', '_12', '_13', '_14', '_15', '_16']

for entry in os.scandir('my_folder'):
    if entry.is_file() and entry.name.split('_')[1] in seq_list:
        shutil.copyfile(entry.path + entry.name, 'dest_folder')
 

【讨论】:

    【解决方案2】:

    假设

    • proc_folder 已经存在
    • my_folderproc_folder 是这些文件夹的完整路径,或者与您当前的工作目录位于同一文件夹中

    如果您想通过 python 创建列表,请使用:

    import os
    dir_list = os.listdir(`my_folder`)
    image_list = [file for file in dir_list if '.png' in file]
    

    然后你可以复制所有这些文件:

    import shutil
    for i_string in my_list:
       i_file = i_string + '.png'
       shutil.copyfile('my_folder\' + i_file, 'proc_folder' + i_file)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多