Python FileNotFoundError:[Errno 2]没有这样的文件或目录:';drone_0002_01320.jpg'-&燃气轮机';drone_0002_01320.png';

Python FileNotFoundError:[Errno 2]没有这样的文件或目录:';drone_0002_01320.jpg'-&燃气轮机';drone_0002_01320.png';,python,operating-system,Python,Operating System,我正在尝试使用以下代码重命名一组文件。该文件位于文件夹中,但出现以下错误。我的代码随附于此: import os path='absolute_path' arr = os.listdir(path) for i in arr: old_name=i old_name_part=old_name.split(".") new_name=old_name_part[0]+".png" print(i,'\t',old_name,'\t',new_name)

我正在尝试使用以下代码重命名一组文件。该文件位于文件夹中,但出现以下错误。我的代码随附于此:

import os
path='absolute_path'
arr = os.listdir(path)

for i in arr:
    old_name=i
    old_name_part=old_name.split(".")
    new_name=old_name_part[0]+".png"
    print(i,'\t',old_name,'\t',new_name)
    os.rename(i,new_name)
错误:

drone_0002_01320.jpg     drone_0002_01320.jpg    drone_0002_01320.png
Traceback (most recent call last):
  File "/absolute_path/rename.py", line 23, in <module>
    os.rename(i,new_name)
FileNotFoundError: [Errno 2] No such file or directory: 'drone_0002_01320.jpg' -> 'drone_0002_01320.png'
drone_0002_01320.jpg drone_0002_01320.jpg drone_0002_01320.png
回溯(最近一次呼叫最后一次):
文件“/absolute_path/rename.py”,第23行,在
os.重命名(i,新名称)
FileNotFoundError:[Errno 2]没有这样的文件或目录:“drone\u 0002\u 01320.jpg”->“drone\u 0002\u 01320.png”
操作系统。重命名(i,新名称)获取文件的完整路径

您可以将其更改为:
os.rename(os.path.join(path,i),os.path.join(path,new_name))


考虑阅读有关
pathlib
模块的内容,它对解决此类问题有一些很好的功能

您应该相信您的计算机。如果它说文件不在那里,那么它就不在那里。你说它“在文件夹内”-哪个文件夹?它可能应该在另一个文件夹中。或者根本就不存在;)找到了:folder.os.rename(path+i,path+new_name),不是吗?它将当前位置作为文件路径。
os.rename
可以很好地处理相对路径,您只需知道它是相对于什么的。@zvone您是对的,但如果您明确指定这些路径,它肯定是正确的:)True,你的解决方案似乎是对的。我只是不想让读者误入歧途,所以我纠正了错误。