python 批量重命名文件后缀

# batch_file_rename.py
# Created: 6th August 2012

‘‘‘
This will batch rename a group of files in a given directory,
once you pass the current and new extensions
‘‘‘

__author__ = ‘Craig Richards‘
__version__ = ‘1.0‘

import os
import sys

def batch_rename(work_dir, old_ext, new_ext):
    ‘‘‘
    This will batch rename a group of files in a given directory,
    once you pass the current and new extensions
    ‘‘‘
    # files = os.listdir(work_dir)
    for filename in os.listdir(work_dir):
        # Get the file extension
        file_ext = os.path.splitext(filename)[1]
        # Start of the logic to check the file extensions, if old_ext = file_ext
        if old_ext == file_ext:
            # Set newfile to be the filename, replaced with the new extension
            newfile = filename.replace(old_ext, new_ext)
            # Write the files
            os.rename(
              os.path.join(work_dir, filename),
              os.path.join(work_dir, newfile)
            )

def main():
    ‘‘‘
    This will be called if the script is directly invoked.
    ‘‘‘
    # Set the variable work_dir with the first argument passed
    work_dir = sys.argv[1]
    # Set the variable old_ext with the second argument passed
    old_ext = sys.argv[2]
    # Set the variable new_ext with the third argument passed
    new_ext = sys.argv[3]
    batch_rename(work_dir, old_ext, new_ext)

if __name__ == ‘__main__‘:
    main()
时间: 2024-10-10 04:12:05

python 批量重命名文件后缀的相关文章

利用Python批量重命名文件(给非技术人员的Python实例参考)

转自https://www.cnblogs.com/brucex/p/python-rename-example.html 这一回我需要完成的任务是把"照片"目录下面的数百个以"数字+中文姓名.jpg"的文件批量重命名,我需要把"数字"删除,保留"中文姓名.jpg",手工改名将是一件繁琐无趣的事.很自然我想到了我一直很喜欢的Python,当然,在这里除了Python还可以用Perl.Ruby.PHP.DOS Batch.VBS

五种方法实现Linux批量重命名文件

五种方法实现Linux批量重命名文件 Linux批量重命名文件是指对某些特定的文件统一进行重新命名,以改变原来一批文件的名称,这里介绍五种方法来实现. AD: Linux批量重命名文件会涉及到改变一个字母.改变一些相连字母.改变某些位置的字母.在最前面加上某些字母.或者改变字母的大小写.完成这里五个方法基本上就会解决了Linux批量重命名的工作. 1.我想把它们的名字的第一个1个字母变为"q",其它的不变 [[email protected] mailqueue]# for i in

通过DOS命令批量重命名文件

以下为提供的两种方法:遍历当前目录下的所有文件名以.avi结尾的文件,然后权限规则进行修改(规则含义请自行查找资料).第一种方法有缺陷,更改完所有的文件名后,会多改一次.请斟酌使用.第二种方法解决了第一个方法的不足. 方法一: 1 @echo off   2 setlocal enabledelayedexpansion   3    4 for /f "delims="  %%a in ('dir /a-d /s /b *.avi') do (   5     echo "

利用perl批量重命名文件

使用perl自带函数rename可以重命名文件名称,具体用法,rename $old_name, $new_name. 例如,要把文件名中“7--1_F03_2018-12-28.fsa”中的前缀“7--”去除. 1 use strict; 2 3 my $DIR_PATH = "./"; # current directory 4 opendir TEMP, ${DIR_PATH} || die "Can not open this directory"; 5 m

一个Java写的批量重命名文件小程序

今天学了一下java的File操作,然后乘着兴趣,写了一个可以批量处理文件命名的小程序,小程序还有一些不完美的地方,但胜在有趣.比如可以快捷更改你不想让别人看到的文件之类的...限个人使用,造成数据丢失后果自负哟. import java.io.File; import java.sql.Date; import java.util.Scanner; public class RenameTool { boolean useDefaultName = false; boolean useDefa

批量重命名文件名称小软件

说在前面 先扯会,如果不是Android开发的,要使用本小软件,可以直接到下面正题 在Android开发中,有时会遇到大量文件需要重命名的情况,特别是一些图片文件.有两个同学遇到过这种情况,我暂时还没遇到,但这种情况以后肯定会遇到的. 可以用批处理命令(move,ren)来解决,但要一条一条写命令,写修改后的文件名,还要写原文件名.如果有些修改后的名称直接是a001.txt,a002.txt,a003.txt,--毫无疑问这样有规律的名称,用万能的Excel解决最快了,一个拖拉就搞定.以前也写过

批量重命名文件

今天突然想给桌面换张壁纸,打开原来的壁纸文件夹,很多当时觉得不错的壁纸现在已经不能看了,删掉一些之后,壁纸文件的名称变得断断续续.当时下载时是按照数字顺序命名的,现在看上去多少有些别扭.于是突发奇想,能否批量给某一目录下的文件重命名,比如我现在的壁纸文件夹. 首先我想到应该要打开一个目录,猜想是否有opendir之类的函数?果然有!在头文件<dirent.h>下面: DIR* __cdecl __MINGW_NOTHROW opendir (const char*); 返回值是DIR*,查看D

[经典] 使用Python批量重命名iPhone拍摄的照片-按照拍摄时间重命名

#!/usr/bin/env python # -*- coding: utf-8 -*- ''' 批量修改照片文件名称的Python脚本程序. 遍历指定目录(含子目录)的照片文件,根据拍照时间将照片文件名修改为以下格式: 20140315_091230.jpg (%Y%m%d_%H%M%S) 由于文件名已经精确到秒,理论上重名的概率非常小. 如果需要考虑到重名的问题,可以对本程序进行进一步的优化. !该程序需要安装exifread模块,否则无法使用. 例如,Linux/Mac OS X下命令行

Python 批量重命名

#coding=utf-8 import os #1.获取要重命名的文件夹的名字 folder_name = input("输入文件夹名:") #2.获取制定的文件夹中的名字 file_names = os.listdir(folder_name) #3.重命名 for name in file_name: print name old_file_name = folder name+"/"+name new_file_name = folder_name+&quo