我有一个文件夹,其中包含当前以时间戳命名的图像。我想重命名目录中的所有图像,使它们被命名为'captured(x).jpg',其中x是目录中的图像编号。
我一直在尝试按照本网站和其他网站的建议实施不同的建议而没有运气。这是我的代码:
path = '/home/pi/images/'
i = 0
for filename in os.listdir(path):
os.rename(filename, 'captured'+str(i)+'.jpg'
i = i +1
我一直收到一条错误,说os.rename行没有“没有这样的文件或目录”。
答案 0 :(得分:4)
os.listdir()
返回的结果不包含路径。
path = '/home/pi/images/'
i = 0
for filename in os.listdir(path):
os.rename(os.path.join(path,filename), os.path.join(path,'captured'+str(i)+'.jpg'))
i = i +1
答案 1 :(得分:1)
两个建议:
示例:
import glob
import os
path = '/home/pi/images/'
for i, filename in enumerate(glob.glob(path + '*.jpg')):
os.rename(filename, os.path.join(path, 'captured' + str(i) + '.jpg'))
答案 2 :(得分:0)
方法rename()
采用绝对路径,您只给它文件名,因此无法找到文件。
在文件名前面添加文件夹的目录以获取绝对路径
path = 'G:/ftest'
i = 0
for filename in os.listdir(path):
os.rename(path+'/'+filename, path+'/captured'+str(i)+'.jpg')
i = i +1
答案 3 :(得分:0)
import glob2
import os
def rename(f_path, new_name):
filelist = glob2.glob(f_path + "*.ma")
count = 0
for file in filelist:
print("File Count : ", count)
filename = os.path.split(file)
print(filename)
new_filename = f_path + new_name + str(count + 1) + ".ma"
os.rename(f_path+filename[1], new_filename)
print(new_filename)
count = count + 1