Python 说它找不到我试图重命名的文件,即使它可以读取文件名

我尝试向每个“.png”文件附加一个短字符串。但是当我运行它时,它说找不到该文件。但我知道它就在那里,并且我可以在文件夹中看到它。


有什么我需要做的吗?


这是我的脚本:


import os


for file in os.listdir("./pics"):

    if file.endswith(".png"):

        newFileName = "{0}_{2}{1}".format(*os.path.splitext(file) + ("z4",))

        os.rename(file, newFileName)

这是我收到的错误消息...02.png 是文件夹中的第一个文件:


fileNotFoundError: [WinError 2] 系统找不到指定的文件: '02.png' -> '02_z4.png'


但这很奇怪,因为它获取文件名,在本例中为02.png. 那么如果它可以读取文件名,为什么找不到它呢?


慕村225694
浏览 56回答 2
2回答

素胚勾勒不出你

我认为我的评论可能已经足够了,但为了清楚起见,我将提供一个简短的答案。02.png相对于您的工作目录不存在。您需要指定文件的路径,因此os.rename需要包含目录。import osfor file in os.listdir("./pics"):    if file.endswith(".png"):        newFileName = "/pics/{0}_{2}{1}".format(*os.path.splitext(file) + ("z4",)) # Notice the ./pics        os.rename(os.path.join('pics', file), newFileName)

凤凰求蛊

从 os.listdir() 返回的名称给出文件名,而不是完整路径。因此,您需要将 pics/02.png 重命名为 pics/02_zf.png。现在您不包含目录名称。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python