Python批量修改文件名的方式详解

目录
  • 批量修改文件名(保留后缀)
  • 批量修改文件名(全改)
  • 读取文件下的所有文件名
  • 总结

批量修改文件名(保留后缀)

这种方法,保留了文件原本的后缀。这里主要演示的是对图片名的修改。

# 批量修改文件名
# 批量修改图片文件名
import os
import re
import sys

path = 'F:\Temp\ZZ'
fileList = os.listdir(path)		            # 待修改文件夹
print("修改前:"+str(fileList))		    # 输出文件夹中包含的文件

currentpath = os.getcwd()		            # 得到进程当前工作目录
os.chdir(path)		                        # 将当前工作目录修改为待修改文件夹的位置
n = 1		                                # 名称变量
for fileName in fileList:		            # 遍历文件夹中所有文件
    pat=".+\.(jpg|png|jpeg)"		        # 匹配文件名正则表达式
    pattern = re.findall(pat,fileName)		# 进行匹配
    os.rename(fileName,(str(n)+'.'+pattern[0]))		#文件重新命名
    n += 1		                        	# 改变编号,继续下一项

os.chdir(currentpath)		                # 改回程序运行前的工作目录
sys.stdin.flush()		                    # 刷新
print("修改后:"+str(os.listdir(path)))		#输出修改后文件夹中包含的文件

批量修改文件名(全改)

这种方法,修改了文件原本的后缀。这里主要演示的是对图片的修改。

import os

path = 'F:\Temp\ZZ'
# 获取该目录下所有文件,存入列表中
fileList = os.listdir(path)

n = 0
for i in fileList:
    # 设置旧文件名(就是路径+文件名)
    oldname = path + os.sep + fileList[n]  # os.sep添加系统分隔符
    # 设置新文件名
    newname = path + os.sep + 'a' + str(n+1) + '.jpg'
    os.rename(oldname, newname)  # 用os模块中的rename方法对文件改名
    print(oldname, '======>', newname)
    n += 1

代码有个小的注意事项。比如文件名字原本就是a1.jpg, a3.jpg, a6.jpg这样时,运行上述代码会报错。把上面的字母a改成其他的就行了。因为文件夹下原本就有该名称的文件,而程序在修改名字的时候,运行过程中就会出现两个同名文件共存的情况。

读取文件下的所有文件名

import os

# 输出所有的文件夹名和文件名
path = 'F:\Temp\ZZ'
dataFileList = os.listdir(path)
for i in dataFileList:
    print(i)

# 读取特定的文件名
txtFile = []
for filename in dataFileList:
    j = filename.split('.')
    if len(j)==2:
        if j[1]=='txt':
            txtFile.append(filename)

总结

到此这篇关于Python批量修改文件名的文章就介绍到这了,更多相关Python批量修改文件名内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python实现批量修改文件名

    python3实现批量修改文件名,供大家参考,具体内容如下 以批量修改某文件夹下所有图片名称为例,注释超详细,万能模板,读者可举一反三,适当修改模板,效果显著! #批量修改文件名 #批量修改图片文件名 import os import re import sys def renameall(): fileList = os.listdir(r"C:\Users\Administrator\Desktop\stars") #待修改文件夹 print("修改前:"+st

  • python实现批量改文件名称的方法

    本文实例讲述了python实现批量改文件名称的方法.分享给大家供大家参考.具体分析如下: 发现python中提供了大量的模块函数,有时候一些系统操作在python中非常简单 下面的文件关键是要放到要操作的目录下, 下面是把当前目录下的图片批量命名,从00开始,其中小于10 的我们在名称前面补零,或者可以利用os设置路径 #-*- coding: UTF-8 -*- import os filenames = os.listdir(os.getcwd()) for name in filename

  • python根据多个文件名批量查找文件

    本文实例为大家分享了python根据多个文件名批量查找文件的具体代码,供大家参考,具体内容如下 老板给了我一个文件列表,让我在一堆文件中挑出来,他要的文件有500多个,一堆文件有上千个,而且给的是关键词,不是完整的文件名. 我先做了类似的文件测试一下,一个名为filename的excel表 又做了一个文件夹 接下来运行代码 import os import numpy as np import pandas as pd import shutil file_path='/home/disk/yh

  • python练习程序批量修改文件名

    复制代码 代码如下: # encoding:utf-8 ### 文件名如:# 下吧.mp3##import os,re fs=os.listdir('xb')for f in fs: ######方法一:partition获取无用字符 #1.将文件名以'['符分为3部分 #ls=f.partition('[') #2.ls[0]为需要文件名,因此获取ls[1:] #dirtystring = ''.join(ls[1:]) #3.开始替换 #newname=f.replace(dirtystri

  • python批量读取文件名并写入txt文件中

    本文实例为大家分享了python批量读取文件名并写入txt中的具体代码,供大家参考,具体内容如下 先说下脚本使用的环境吧,在做项目的过程中需要动态加载图片,使用Unity的Resources.Load方法,但是百十张图片怎么能一 一写下他们的名字作为加载的路径呢?总不能一个一个编辑后存到数组中吧,(虽然我最初是这么做的).所以必须有一个批量的工具,必须的. 于是乎激发了我的灵感,下面看代码.备注少,不动的给我留言,我会及时回复的. #coding=utf-8 import sys import

  • python实现文件名批量替换和内容替换

    指定文件夹,指定文件类型,替换该文件夹下全部文件的内容. 注意在window下的读写内容需要指定编码,还需要在文件头指定#coding:utf-8 编码,避免出现编码问题. 复制代码 代码如下: #coding:utf-8 import osimport os.path path='.'oldStr='.php'newStr='.html' for (dirpath, dirnames, filenames) in os.walk(path):    for file in filenames:

  • Python遍历目录并批量更换文件名和目录名的方法

    本文实例讲述了Python遍历目录并批量更换文件名和目录名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2014-03-07 #summary: 深度遍历指定目录,并将子目录和文件名改为小写 #注意,此程序只针对windows,windows下文件(夹)名不区分大小写 import os import os.path import shutil #读入指定目录并转换为绝对路径 rootdir = raw_input('ro

  • python实现批量修改文件名代码

    我曾以为,写脚本是很难的,直到我遇到了Python 前言随着国内版权意识的跟进,很多影视音乐资源开始收费,而且度盘又经常随意封杀各种资源,所以,为了保护资源,老司机们越来越倾向于把资源下载到本地,但随着本地资源量的增多,资源管理就成了一件比较头疼的事情;对于资源的管理,方法有很多,我比较喜欢为资源起一个好记的名字,但改文件名是一件无聊又耗时的事情,所以,一个批量重命名的脚本就变得非常重要. 1.批量添加前缀功能 批量重命名 批量重命名逻辑,分三步: (1)确定需要命名的文件们 (2)确定新的文件

  • python批量修改文件名的实现代码

    #coding:utf-8 #批量修改文件名 import os import re import datetime re_st = r'(\d+)\+\s?\((\d+)\)' #用于匹配旧的文件名,需含分组 re_match_old_file_name = re.compile(re_st) #要修改的目录 WORKING_PATH = r'F:\Gallery' #---------------------------------------------------------------

  • 使用Python批量修改文件名的代码实例

    这两天在整理一些文章,但是文件夹中每个文章没有序号会看起来很乱,所以想着能不能用Python写一个小脚本. 于是乎,参考了多方资料,简单写了下面几行代码 import osdef tekan(): i=1 #为序号赋初值 for old_file in os.listdir('.'): #os.listfir('.')用于获取当前文件夹所有文件名,'.'表示当前文件夹,也可改为目标文件路径 if 'py' not in old_file: #由于脚本文件不需要修改文件名,所以这里做个判断 #ne

随机推荐