复制文档并按名称粘贴到另一个文件夹的脚本

问题描述 投票:0回答:1

我需要编写一个Python脚本,以便给出文档名称列表,它在路径的子文件夹中找到它们,复制它们并将它们粘贴到另一个文件夹中。

问题是我需要程序也分析子文件夹,因为我需要的文档位于父文件夹以下 3 层。

我有文档名称列表,并且需要脚本来:

  1. 读取所需第一个文档的名称
  2. 在一组文件夹/子文件夹中找到它
  3. 复制元素
  4. 粘贴到另一个文件夹
  5. 使用下一个所需文档循环此过程。

示例

1。列出所需的文件名称:

要移动的文档 = ["49684.32_PJ-R2106027AROJ 1.jpg", "51010.32_PJ-R2206073AZJ 1.jpg"]

2。传递一个函数,以便执行所需的操作:

function(documents_to_move, " 92.168.0.222\Renatta\Renatta 2022 . WEB . WEB FOTOS . SUBIDO A WEB")

3.该函数必须沿着母文件夹的子文件夹本地化这些文件:

  • 49684.32_PJ-R2106027AROJ 1.jpg --> 92.168.0.222\雷纳塔\雷纳塔 2022 。网络。网络照片。 SUBIDO 一个网站。十月�2-10-07_Carlota\BAJA

  • 51010.32_PJ-R2206073AZJ 1.jpg --> 92.168.0.222\雷纳塔\雷纳塔 2022 。网络。网络照片。 SUBIDO 一个网站。 Enero�2-01-22_Gala&Marta\BAJA

4。复制这些文件,并将它们粘贴到我桌面上的文件夹中:“C:\Users\Pablo\Desktop\Pablo”

我已经尝试过这些脚本:

def find_all(name, path):
result = []
for root, dirs, files in os.walk(path):
    if name in files:
        result.append(os.path.join(root, name))
return result

还有:

def find(pattern, path):
result = []
for root, dirs, files in os.walk(path):
    for name in files:
        if fnmatch.fnmatch(name, pattern):
            result.append(os.path.join(root, name))
return result

但是,即使我尝试使用该路径内的文档,两者都会返回一个空列表。

预先感谢您的帮助。

巴勃罗

python path operating-system document shutil
1个回答
0
投票

首先在源文件夹中找到您的文件,可以在主目录或任何子目录中。它将检查该文件是否在您的列表中。

然后,如果它在您的列表中,它将打印文件的位置并移动它。

import os
import shutil

def move_function(filestomove, source_input, destination_input):

    fileList = filestomove
    source = source_input
    destination = destination_input

    for root, dirs, files in os.walk(source):
        for file in files: # loops through directories and files
            if file in fileList: # compares to your list
                print(os.path.join(source, file))
                src_path = os.path.join(source, file)
                dst_path = os.path.join(destination, file)
                shutil.copy(src_path , dst_path) 

现在要运行它,您所要做的就是,

documents_to_move = ["49684.32_PJ-R2106027AROJ 1.jpg", "51010.32_PJ-R2206073AZJ 1.jpg"]
source = r'C:/Users/Pablo/Documents/source'
destination = r'C:/Users/Pablo/Desktop/Pablo'
move_function(documents_to_move, source, destination)
© www.soinside.com 2019 - 2024. All rights reserved.