我有一个包含7500张图片的文件夹。我需要使用Python中的shutil模块将前600张图像复制到一个新文件夹中。
我试着在网上寻找相关的东西,但是路径的用法有点混乱。我的命令序列到底应该是什么?我猜它会像这样开始:
import os
import shutil
l=os.listdir(path)
for file in l[0:600]:编辑:在澄清了shutil.copy()的作用之后,我想到了:
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。语法中出了什么问题?
发布于 2021-05-08 07:20:31
嗯,os.listdir()将返回随机排序的文件,你可以做的一件事是,你可以对每个文件调用os.stat(file).st_mtime,它将返回该文件最后一次修改的时间戳,然后你可以根据时间对文件进行排序,得到第一个/最后一个文件。但这实际上取决于你的用例和你如何解释第一个文件是什么。但是当涉及到shutil库时,你可以直接调用:
for file in l[0:600]:
shutil.copy(file, f'./destination/{file}')它会将600个文件复制到当前目录下的名为“destination”的目录中。
发布于 2021-05-08 07:28:14
os.listdir(path)将列出您正在搜索的目录中的文件和子目录。
我假设你所有的文件都是.jpg的,所以我会使用glob模块。
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)https://stackoverflow.com/questions/67442494
复制相似问题