繁体   English   中英

重命名文件后出现“FileNotFoundError:没有这样的文件或目录”

[英]'FileNotFoundError: No such file or directory' after renaming files

我是 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'

我需要做什么才能使文件被识别以进行复制?

您的代码中有错误 - 脚本的第一部分以索引从 1 开始命名图片:

os.chdir('E:\\weeds')
i=1
for file in os.listdir():

而代码的下一部分遍历range函数的结果,在您的情况下,该结果从 0 开始,以 249 结束。 检查range函数的文档以获取更多信息。

您得到的错误表明目录中没有名为weed0.jpg的文件,确实如此。

您可以做的最简单的修复是在代码的第一部分将i的初始值设置为 0,它应该可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM