使用pathlib根据file.name将文件从子目录复制到其他子目录

KevOMalley743

目录 1 包含学生信息的子文件夹,每个子文件夹都使用以下约定命名

LASTNAME, FIRSTNAME (STUDENTNUMBER)

目录 2 有 6 个子文件夹,其中包含.xlsx学生成绩表,这些 excel 文件中的每一个都使用以下约定命名

LASTNAME, FIRSTNAME (STUDENTNUMBER) marking sheet.xlsx

我想使用 pathlib 获取目录 1 中子文件夹的名称,并在目录 2 中的子文件夹中找到匹配的评分表。

例如:

import pathlib as pl

dir1 = pl.WindowsPath(r'C:\Users\username\directory_1')
dir2 = pl.WindowsPath(r'C:\Users\username\directory_2')

for (subfolder, file) in zip(dir1.iterdir(), dir2.rglob("*.xlsx")):
    if str.lower(subfolder.name) is in str.lower(file.name): #I run up against a wall here
        copy file into subfolder
        print(f'{file.name} copied to {subfolder.name}')

如果这个问题不清楚,但任何帮助将不胜感激。我也试图从这个答案中表达想法,但我对 python 不够熟练,无法根据我的需要修改它。

亚历克斯

这是未经测试的,但我认为您想要做的是从目录 1 中的子文件夹创建潜在文件名,使用它在目录 2 中搜索,然后移动您找到的文件。

from pathlib import Path
from shutil import copy

dir1 = Path("C:\Users\username\directory_1")
dir2 = Path("C:\Users\username\directory_2")

for folder in dir1.iterdir():
    # We're only interested in folders
    if not folder.is_dir():
        continue

    target_file = f"{folder.name} marking sheet.xlsx"
    for file in dir2.rglob(target_file):
        # copy(file, dest)

我不知道在哪里,你要的文件被复制,但你可以设置dest变量的每个子文件夹dir1或结果rglob另一件要注意的事情是,您可能会在不同的目录中找到多个具有目标名称的文件,因此我警告不要将它们全部复制到同一个位置!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据两个列表将文件从子目录复制并重命名到不同的子目录?

使用终端将内容/文件复制到目录中的所有子目录

根据匹配变量将文件Bash复制到子目录

根据子目录名称将文件从特定子目录复制到单个目录中,然后重命名

使用批处理脚本将特定文件从源目录复制到目标目录和子目录

使用通配符将多个文件从一个子目录复制到另一个子目录

如何使用终端将文件复制到具有相同名称的特定子目录?

如何使用Java的目录流仅在目录中而不是其他子目录中获取文件/子目录

使用.htaccess将子目录重写为根目录,但保留对其他子目录的访问权限

如何从子目录导入文件并使用子目录名称R命名它们

如何使用最少数量的命令将所有 .txt 文件从所有子目录复制到一个目录?

使用 Robocopy 更新功能将子目录中的所有文件复制到单个文件夹

子目录未使用Rsync Linux复制到远程服务器

在其他子目录中使用Form变量

使用goroutines复制子目录

如何在Linux命令行上使用cURL通过PHP将文件上传到其他子目录?

如何使用.htaccess将子目录重定向到根目录,参数为子目录

遍历文件('for file in ...),还包括子目录?

使用find -exec将cp文件放入子目录

如何从子目录提取文件名和路径,并需要使用unix shell脚本将输出写入到csv文件中

需要使用 CMake 从库子目录中复制 DLL 以测试子目录

如何根据原始文件的更改重命名复制目录中的文件和子目录?

如何根据目录和子目录中的txt文件复制和重命名文件

使用循环在子目录中的子目录

将特定文件从子目录复制到一个目录

从所有子目录移动特定文件,并根据子目录重命名

根据条件将子目录作为根目录

从子目录递归读取文件,并使用s3或本地文件系统中的spark

.htaccess使用代理从子目录重定向到另一个域