将具有特定名称的文件复制到另一个文件夹

Copying files with a specific name to another folder

我有包含 1500 个 txt 文件的文件夹和包含 20000 个 jpg 文件的文件夹。 1500个jpg文件与txt文件同名。我需要将这些名称类似于 txt 文件的 jpg 文件移动到另一个文件夹。 简单地说,我有从 1(1) 到 5(500) 的 txt 文件,我只需要从 0(1) 的 jpg 文件的文件夹中移动名称从 1(1) 到 5(500) 的文件到 9(500)。 我试图通过 shutil 在 Python 中编写一个程序,但我不明白如何输入所有 1500 个值,因此只有这些文件被移动。 请告诉我该怎么做?提前致谢! 我找到了所有 txt 文件的名称,并试图从另一个同名文件夹中复制图片。 图片示例: 我有这个名字 我只需要复制这些图像,因为它们的名称与 txt 的名称相同:

import os
import glob
import shutil


source_txt = 'C:\obj\TXT'
dir = 'C:\obj\Fixed_cars'
vendors =['C:\obj\car']

files_txt = [os.path.splitext(filename)[0] for filename in os.listdir(source_txt)]

for file in vendors:
     for f in (glob.glob(file)):
         if files_txt in f: # if apple in name, move to new apple dir
             shutil.move(f, dir)

嗯,使用 this answer on looping through files of a folder 您可以循环浏览文件夹中的文件。

import os

directory = ('your_path_in_string')
txt_files = []
for filename in os.listdir(directory):
    if filename.endswith(".txt"): 
         txt_files.append(filename.rstrip('.txt'))
for filename in os.listdir(directory):
    if (filename.endswith(".jpg") and (filename.rstrip('.jpg') in txt_files)): 
         os.rename(f"path/to/current/{filename}", f"path/to/new/destination/for/{filename}")

for the the moving file part you can read this answer