将一个目录中的所有JPG文件复制到另一个目录中,使用Python?

12
我想将一个目录中的所有JPG文件复制到一个新目录中。 我该如何使用Python解决这个问题?我刚开始学习Python。
谢谢您的回复。

看看这些与你的问题类似的问题,并尝试其中一个解决方案- https://dev59.com/SXVD5IYBdhLWcg3wAGiD https://dev59.com/1E7Sa4cB1Zd3GeqP1Cev https://dev59.com/wnA75IYBdhLWcg3wP2gg - geeky_bat
4个回答

31

当然,Python提供了你所需要的所有工具。要复制文件,你可以使用shutil.copy()。要在源目录中查找所有JPEG文件,你可以使用glob.iglob()

import glob
import shutil
import os

src_dir = "your/source/dir"
dst_dir = "your/destination/dir"
for jpgfile in glob.iglob(os.path.join(src_dir, "*.jpg")):
    shutil.copy(jpgfile, dst_dir)
请注意,这将覆盖目标目录中所有与文件名匹配的文件。

非常感谢。它可以成功工作。但是似乎无法处理子目录中的JPG文件。如果我想获取所有JPG文件(包括子目录),该怎么办? - fakelbst
@Seventeenager:你需要使用 os.walk() 来遍历整个目录树 - 可以参考文档中的示例。 - Jolly Jumper

5

只需使用以下代码

import shutil, os
files = ['file1.txt', 'file2.txt', 'file3.txt']
for f in files:
    shutil.copy(f, 'dest_folder')

注意:您当前在目录中。 如果您有不同的目录,请在文件列表中添加路径。 例如:

files = ['/home/bucket/file1.txt', '/etc/bucket/file2.txt', '/var/bucket/file3.txt']

1
未按要求定义源位置。 - Display name
@Displayname 当前目录是源文件。 - skpaik

4
import shutil 
import os 

for file in os.listdir(path):
    if file.endswith(".jpg"):
       src_dir = "your/source/dir"
       dst_dir = "your/dest/dir"
       shutil.move(src_dir,dst_dir)

os.listdir(path) -- 这里的 path 未定义 - Crayons

3
for jpgfile in glob.iglob(os.path.join(src_dir, "*", "*.jpg")):
    shutil.copy(jpgfile, dst_dir) 

在搜索子目录时,应在".jpg"之前写上 "**"。更多的""表示需要搜索更多的子目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接