我有一个文件夹的90,000 PDF文档与顺序数字标题(e.g. 02.100294.PDF)。我有一个从这个文件夹中提取的70,000文章标题的列表。我想要构建一个Python程序,它将标题从列表匹配到文件夹中的标题,然后将匹配的文件移动到new文件夹。
例如,假设我在“文件夹”中有以下文件;
1.100.PDF
1.200.PDF
1.300.PDF
1.400.PDF然后,我有一个包含以下标题的列表
1.200.PDF
1.400.PDF我想要一个程序,将两个文档标题从列表(1.200 and 1.400)匹配到文件夹中的文档,然后将这两个文件移动到"NEW_FOLDER“。
来完成这个任务吗?
谢谢!
编辑:这是我目前的代码。源目录是'scr','dst‘是新的目的地。"Conden_art“是我想要移动的文件列表。我试图查看“scr”中的文件是否与“conden_art”中列出的名称相匹配。如果是的话,我想把它移到“dst”。现在,代码没有找到匹配项,只打印“已完成”。这个问题不同于仅仅移动文件,因为我需要将文件名与列表匹配,然后移动它们。
import shutil
import os
for file in scr:
if filename in conden_art:
shutil.copy(scr, dst)
else:
print('done')解决了!
下面是我最后使用的代码。谢谢你的帮助!
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)发布于 2020-01-27 16:13:27
我有个办法-
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/这里的src和dst是源和目的地的路径。在运行src循环之前,请确保您位于for路径。否则,python将无法找到该文件。
发布于 2020-01-27 16:26:22
与其循环遍历源目录中的文件,不如循环遍历您已经拥有的文件名。您可以使用os.path.exists()来检查文件是否可用。
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')https://stackoverflow.com/questions/59934004
复制相似问题