首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将列表与文件名匹配,然后将匹配的文件移到Python中的新目录?

如何将列表与文件名匹配,然后将匹配的文件移到Python中的新目录?
EN

Stack Overflow用户
提问于 2020-01-27 15:21:13
回答 2查看 1.4K关注 0票数 1

我有一个文件夹的90,000 PDF文档与顺序数字标题(e.g. 02.100294.PDF)。我有一个从这个文件夹中提取的70,000文章标题的列表。我想要构建一个Python程序,它将标题从列表匹配到文件夹中的标题,然后将匹配的文件移动到new文件夹。

例如,假设我在“文件夹”中有以下文件;

代码语言:javascript
复制
1.100.PDF
1.200.PDF
1.300.PDF
1.400.PDF

然后,我有一个包含以下标题的列表

代码语言:javascript
复制
1.200.PDF
1.400.PDF

我想要一个程序,将两个文档标题从列表(1.200 and 1.400)匹配到文件夹中的文档,然后将这两个文件移动到"NEW_FOLDER“。

  • 知道如何用Python?

来完成这个任务吗?

谢谢!

编辑:这是我目前的代码。源目录是'scr','dst‘是新的目的地。"Conden_art“是我想要移动的文件列表。我试图查看“scr”中的文件是否与“conden_art”中列出的名称相匹配。如果是的话,我想把它移到“dst”。现在,代码没有找到匹配项,只打印“已完成”。这个问题不同于仅仅移动文件,因为我需要将文件名与列表匹配,然后移动它们。

代码语言:javascript
复制
import shutil
import os

for file in scr:
    if filename in conden_art:
        shutil.copy(scr, dst)
    else:
        print('done')

解决了!

下面是我最后使用的代码。谢谢你的帮助!

代码语言:javascript
复制
import shutil
import os
import pandas as pd

scr = filepath-1
dst = filepath-2

files = os.listdir(scr)

for f in files:
    if f in conden_art:
        shutil.move(scr + '\\' + f, dst)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-27 16:13:27

我有个办法-

代码语言:javascript
复制
from os import listdir
from os.path import isfile, join
import shutil

files = [f for f in listdir(src) if isfile(join(src, f))] # this is your list of files at the source path

for i in Conden_art:
    if i in files:
       shutil.move(i,dst+i)  # moving the files in conden_art to dst/

这里的srcdst是源和目的地的路径。在运行src循环之前,请确保您位于for路径。否则,python将无法找到该文件。

票数 1
EN

Stack Overflow用户

发布于 2020-01-27 16:26:22

与其循环遍历源目录中的文件,不如循环遍历您已经拥有的文件名。您可以使用os.path.exists()来检查文件是否可用。

代码语言:javascript
复制
from os import path
import shutil

for filename in conden_art:
    src_fp, dst_fp = path.join(src, filename), path.join(dst, filename)
    if path.exists(filepath):
        shutil.move(src_fp, dst_fp)
        print(f'{src_fp} moved to {dst}')
    else:
        print(f'{src_fp} does not exist')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59934004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档