首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用shutil()复制特定文件

使用shutil()复制特定文件
EN

Stack Overflow用户
提问于 2021-05-08 06:49:03
回答 2查看 52关注 0票数 0

我有一个包含7500张图片的文件夹。我需要使用Python中的shutil模块将前600张图像复制到一个新文件夹中。

我试着在网上寻找相关的东西,但是路径的用法有点混乱。我的命令序列到底应该是什么?我猜它会像这样开始:

代码语言:javascript
复制
import os
import shutil
l=os.listdir(path)
for file in l[0:600]:

编辑:在澄清了shutil.copy()的作用之后,我想到了:

代码语言:javascript
复制
import os
import shutil
l=os.listdir(path)
for file in l[0:600]:
    shutil.copy(file, destination, *, follow_symlinks = True)

但它会突出显示*后的逗号,并给出错误iterable argument unpacking follows keyword argument unpacking。语法中出了什么问题?

EN

回答 2

Stack Overflow用户

发布于 2021-05-08 07:20:31

嗯,os.listdir()将返回随机排序的文件,你可以做的一件事是,你可以对每个文件调用os.stat(file).st_mtime,它将返回该文件最后一次修改的时间戳,然后你可以根据时间对文件进行排序,得到第一个/最后一个文件。但这实际上取决于你的用例和你如何解释第一个文件是什么。但是当涉及到shutil库时,你可以直接调用:

代码语言:javascript
复制
for file in l[0:600]:
    shutil.copy(file, f'./destination/{file}')

它会将600个文件复制到当前目录下的名为“destination”的目录中。

票数 0
EN

Stack Overflow用户

发布于 2021-05-08 07:28:14

os.listdir(path)将列出您正在搜索的目录中的文件和子目录。

我假设你所有的文件都是.jpg的,所以我会使用glob模块。

代码语言:javascript
复制
import glob
path = "D:Pictures\*.jpg"
destination = r"E:\new_pictures\\"
files = glob.glob(path)

for f in sorted(files)[:600]:
    shutil.copy(f, destination)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67442494

复制
相关文章

相似问题

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