【问题标题】:'FileNotFoundError: No such file or directory' after renaming files重命名文件后出现“FileNotFoundError:没有这样的文件或目录”
【发布时间】:2020-09-14 18:40:40
【问题描述】:

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

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

【问题讨论】:

    标签: python image operating-system copy


    【解决方案1】:

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

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

    虽然代码的下一部分遍历 range 函数的结果,在您的情况下,该函数从 0 开始并以 249 结束。查看docs 获取range 函数以获取更多信息。

    你得到的错误提示目录下没有名为weed0.jpg的文件,确实如此。

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

    【讨论】:

    • 或者修改range()从1开始而不是0。
    猜你喜欢
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多