欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【Python】os.rename图片批量重命名和os.chdir使用记录

程序员文章站 2022-04-16 16:17:43
1、os.rename图片批量重命名背景在对文件下多个图片进行重命名的时候,os.rename(oldname, newname),报错OSError: [WinError 123] 文件名、目录名或卷标语法不正确。分析当我对一张图片进行重命名的时候,os.rename成功,注意要指定具体路径a = r"C:\Users\yourpath\haoqi-3.jpg"b = r"C:\Users\yourpath\qiqi-00-00-10.jpg"os.renames(a,b)...

1、os.rename图片批量重命名

背景

在对文件下多个图片进行重命名的时候,os.rename(oldname, newname),报错

OSError: [WinError 123] 文件名、目录名或卷标语法不正确。

分析

当我对一张图片进行重命名的时候,os.rename成功,注意要指定具体路径

a = r"C:\Users\yourpath\haoqi-3.jpg"
b = r"C:\Users\yourpath\qiqi-00-00-10.jpg"
os.rename(a,b) # 目录是可以修改的 os.renames(a,b)也可以成功

问题出在图片批量重命名,要修改一下循环的逻辑,不能直接for pic in file:,修改如下

for parent, dirnames, filenames in os.walk(path):
    n = len(filenames)
    for i in range(n):
        filename = filenames[i]
        relative_time = "xxxxx"
        prefix = filename.split('.')[0] + '-' + relative_time
        suffix = filename.split('.')[-1]
        new_filename = "{}.{}".format(prefix, suffix)
        # 旧名字
        src = os.path.join(parent, filename)
        # 新名字
        dst = os.path.join(parent, new_filename)

        os.renames(src, dst)

2、关于os.chird()

是我在解决上一个问题的时候,搜索得到的解决方案,< OSError: [WinError 123] 文件名、目录名或卷标语法不正确。> 虽然我使用这个没有解决问题。。。

newname = "(" + NextAddPart + ")" + items
os.chdir(path + '\\' + NextAddPart)  # path = 就是修改后要指定的路径
os.rename(items, newname)

python --os.chdir()方法

os.chdir(path) 方法是用于改变当前工作路径到指定路径。path 即要切换的新路径。

看原链接的图片就很清晰了

【Python】os.rename图片批量重命名和os.chdir使用记录

 

另外,与此文标题无关

这博主实现的内容和我好像,python遍历文件夹下文件 批量重命名

#!/usr/bin/python  
# -*- coding:utf8 -*-  
  
import os
import sys

def cur_file_dir():
    # 获取当前文件路径
    path = sys.path[0]
    if os.path.isdir(path):
        return path
    elif os.path.isfile(path):
        return os.path.dirname(path)
 

def ReName(filpath):
    video_list = os.listdir(filpath)
    for video_index in range(0, len(video_list)):
        full_name = os.path.join(filpath, video_list[video_index])
        video_name = video_list[video_index]
        if video_name[0].isdigit():
            file_extension = video_name.split(".")[-1]
            video_name = video_name.split(".")[0]
            video_names = video_name.split('-', 1)
            digit = video_names[0]
            real_name = video_names[1]
            rename = real_name + "-" + digit + "." + file_extension
            os.rename(full_name, os.path.join(filpath, rename))


if __name__ == '__main__':
    filepath = sys.argv[1]
    ReName(filepath)

 

本文地址:https://blog.csdn.net/weixin_31866177/article/details/107657261

相关标签: 编程语言