我是Python新手,正在尝试在按数字顺序重命名图像后将照片(.jpg)复制到文件夹中。我已经编写了以下脚本,将目录中的所有照片(共32,000张)重命名为它们的名称(杂草):
import os
os.chdir('E:\\weeds')
i=1
for file in os.listdir():
src=file
dst="weed"+str(i)+".jpg"
os.rename(src,dst)
i+=1
以下是输出命名的示例:
然后,我尝试将这些照片中的前250张复制到一个新目录中,如下所示:
import os, shutil
#Copying files to folders
original_weed = 'E:\\weeds'
train_weed = 'E:\\weeds_train'
#Training dataset: Weeds
fnames = ['weed{}.jpg'.format(i) for i in range(250)]
for fname in fnames:
src = os.path.join(original_weed, fname)
dst = os.path.join(train_weed, fname)
shutil.copyfile(src, dst)
会产生以下错误:
FileNotFoundError Traceback (most recent call last)
<ipython-input-7-f08fff292dd8> in <module>
17 src = os.path.join(original_weed, fname)
18 dst = os.path.join(train_weed, fname)
---> 19 shutil.copyfile(src, dst)
~\anaconda3\lib\shutil.py in copyfile(src, dst, follow_symlinks)
259 os.symlink(os.readlink(src), dst)
260 else:
--> 261 with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
262 # macOS
263 if _HAS_FCOPYFILE:
FileNotFoundError: [Errno 2] No such file or directory: 'E:\\weed0.jpg'
我需要做什么才能使文件能够被识别以进行复制?
发布于 2020-09-15 02:46:47
您的代码中有一个错误-脚本的第一部分使用从1开始的索引命名图片:
os.chdir('E:\\weeds')
i=1
for file in os.listdir():
而代码的下一部分遍历range
函数的结果,在本例中,该函数从0开始,以249结束。有关详细信息,请查看range
函数的docs。
您得到的错误指示目录中没有名为weed0.jpg
的文件,这确实是真的。
您可以做的最简单的修复方法是在代码的第一部分将i
的初始值设置为0,它应该可以正常工作。
https://stackoverflow.com/questions/63890116
复制相似问题