使用os.rename()重命名文件时出错

时间:2017-10-05 05:45:07

标签: python file-rename

我正在使用python重命名作为二进制文件存在但实际上是图像的文件。所以我需要将它们重命名为.jpg格式。我正在使用os.rename()但收到错误:

Traceback (most recent call last):
  File "addext.py", line 8, in <module>
    os.rename(filename, filename + '.jpg')
OSError: [Errno 2] No such file or directory

这是我的代码。

import os

for filename in os.listdir('/home/gpuuser/Aditya_Nigam/lum2/'):
    # print(filename + '.jpg')
    # k = str(filename)
    # print k
    # k = filename + '.jpg'
    os.rename(filename, filename + '.jpg')

print('Done')

1 个答案:

答案 0 :(得分:2)

os.listdir仅返回没有绝对路径的文件名列表,os.rename将尝试从当前目录中查找文件名,除非给出绝对路径。基本上,代码as-is仅在与os.listdir调用的目录相同的目录中执行时才有效。

考虑执行以下操作:

import os
from os.path import join

path = '/home/gpuuser/Aditya_Nigam/lum2/'
for filename in os.listdir(path):
    os.rename(join(path, filename), join(path, filename) + '.jpg')

os.path.join方法将以平台无关的方式安全地将文件名与路径连接在一起。