代码之家  ›  专栏  ›  技术社区  ›  SkyeBoniwell

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

  •  1
  • SkyeBoniwell  · 技术社区  · 4 年前

    我试图在每个“.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是文件夹中的第一个文件:

    这很奇怪,因为它得到了文件名,在这种情况下, 02.png . 那么如果它可以读取文件名,为什么找不到呢?

    谢谢

    2 回复  |  直到 4 年前
        1
  •  1
  •   That1Guy    4 年前

    我想我的评论可能足够了,但为了清楚起见,我将提供一个简短的回答。

    02.png 相对于您的工作目录不存在。您需要为指定文件的路径 os.rename

    import os
    
    for 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)
    
        2
  •  1
  •   OneLiner    4 年前

    从os.listdir()返回的名称给出的是文件名,而不是完整路径。因此,您需要将pics/02.png重命名为pics/02_zf.png。现在不包括目录名。