如何用python批量改文件名

作者&投稿:房伦 (若有异议请与网页底部的电邮联系)
如何用python批量改文件名~

引入os模块(python中操作文件的模块)。

2
定义修改名称的函数rename。
在rename函数中定义一个储存路径的变量path,并将要修改文件名的文件夹的路径赋值给该变量。

3
继续向函数中添加功能代码

4
最后调用这个rename函数这个脚本就写完了。执行这个文件,就会将文件夹下所有的文件改成 这里是你要改的文件名.后缀名 这样的格式,显然我们一般情况下不是需要这样的效果的。下面我列出了一些常用的改文件名的方法。

5
列出代码,便于复制
import os;

def rename():
path="这里替换为你的文件夹的路径";

filelist=os.listdir(path)#该文件夹下所有的文件(包括文件夹)
for files in filelist:#遍历所有文件
Olddir=os.path.join(path,files);#原来的文件路径
if os.path.isdir(Olddir):#如果是文件夹则跳过
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件扩展名
Newdir=os.path.join(path,"这里是你要改的文件名"+filetype);#新的文件路径
os.rename(Olddir,Newdir);#重命名

rename();
END
添加改名规律
1
(1).序号依次递增型
import os;

def rename():
count=0;
path='C:\\Users\\admin\\Desktop\est';

filelist=os.listdir(path)#该文件夹下所有的文件(包括文件夹)
for files in filelist:#遍历所有文件
Olddir=os.path.join(path,files);#原来的文件路径
if os.path.isdir(Olddir):#如果是文件夹则跳过
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件扩展名
Newdir=os.path.join(path,str(count)+filetype);#新的文件路径
os.rename(Olddir,Newdir);#重命名
count+=1;

rename();

2
(2).批量取分隔符前面/后面的名称
import os;

def rename():
path='C:\\Users\\admin\\Desktop\est';

filelist=os.listdir(path)#该文件夹下所有的文件(包括文件夹)
for files in filelist:#遍历所有文件
Olddir=os.path.join(path,files);#原来的文件路径
if os.path.isdir(Olddir):#如果是文件夹则跳过
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件扩展名

if filename.find('---')>=0:#如果文件名中含有---
Newdir=os.path.join(direc,filename.split('---')[0]+filetype);
#取---前面的字符,若需要取后面的字符则使用filename.split('---')[1]
if not os.path.isfile(Newdir):
os.rename(Olddir,Newdir);

rename();

os.rename(a,b)是把a重命名为b(名字带路径)
os.listdir(path)以列表形式获取路径下文件(包括文件夹),os.listdir(“.”)是当前文件夹
然后。。。想怎么重命名就怎么写程序。。。遍历,(检查,)修改。。。
如果待重命名的文件和py程序在一个文件夹会很方便,重命名不需要路径,像os.rename(“1.txt”,“2.txt”)
如果重命名的规则没法表述,那只能自己一个个改了。。。

#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'
 
 #---------------------------------------------------------------------- 
def rename_fomat(name): 
  """ 
  文件重命名格式组织模块(一般修改这里就可以了) 
  NOTE:返回类型必须是unicode 
  """
  if name: 
    re_rn = re_match_old_file_name.findall(name) 
    if re_rn and re_rn != []: 
      re_rn = re_rn[0] 
      num = int(re_rn) 
      new_nm = u'NO.%04d' % ( num) 
      return new_nm 
 #---------------------------------------------------------------------- 
def logs(error): 
  """ 
  错误记录 
  """
  log = '' 
  LOG_FILE = open(r'./log.txt', 'a') 
  live_info =""" 
========== 
Time : %s 
title : %s 
Path : 
%s 
========== 
""" % ( 
    datetime.datetime.now(), 
    str(error['title']), 
    str(error['index']), 
  ) 
  log += live_info 
  errors = error['error_paths'] 
  for item in errors: 
    item = '%s
' % item 
    log += item 
  log = log.encode('utf-8') 
  try: 
    LOG_FILE.write(log) 
  except IOError: 
    print u'写入日志失败'
  finally: 
    LOG_FILE.close() 
 #---------------------------------------------------------------------- 
def rename(old, new): 
  """ 
  文件重命名模块 
  return: 
    0:rename success 
    1:the new path is exists 
    -1:rename failed 
  """
  if not os.path.exists(new): 
    try: 
      os.renames(old, new) 
      return 0
    except IOError: 
      print 'path error:', new 
      return -1
  else: 
    return 1
 #---------------------------------------------------------------------- 
def get_dirs(path): 
  """ 
  获取目录列表 
  """
  if os.path.exists(path): 
    return os.listdir(path) 
  else: 
    return -1
 
 #---------------------------------------------------------------------- 
def get_input_result(word, choice): 
  """ 
  获取正确的输入结果 
  """
  correct_result = set(choice) 
  word = '===%s?
[in]:' % (word) 
  while True: 
    in_choice = raw_input(word) 
    if in_choice in correct_result: return in_choice 
   
 
 #---------------------------------------------------------------------- 
def batch_rename(index, dirs = []): 
  """ 
  批量修改文件 
  """
  index = unicode(index) 
  errors = [] 
  if dirs == []: 
    dirs = get_dirs(path = index) 
  if dirs and dirs != []: 
    for item in dirs: 
      item = unicode(item) 
      new_name = rename_fomat(item) 
      if new_name : 
        old_pt = u'%s\\%s'% (index, item) 
        new_pt = u'%s\\%s'% (index, new_name) 
        res_rn = rename(old_pt, new_pt) 
        if res_rn != 0: 
          errors.append(item) 
      else: 
        errors.append(item) 
    if errors and errors != []: 
      print 'Rename Failed:'
      logs({ 
        'index': index, 
        'title': 'Rename Failed' , 
        'error_paths': errors, 
      }) 
      for i, item in enumerate(errors): 
        print item, '|', 
        if i % 5 == 4: 
          print '' 
      print '' 
  else: 
    return -1
 #---------------------------------------------------------------------- 
def batch_rename_test(index): 
  """ 
  测试 
  返回过滤结果 
  """
  index = unicode(index) 
  errors = [] 
  correct = [] 
  dirs = get_dirs(path = index) 
  if dirs and dirs != []: 
    for x, item in enumerate(dirs): 
      item = unicode(item) 
      new_name = rename_fomat(item) 
      if new_name : 
        correct.append(item) 
        old_pt = u'%s\\%s'% (index, item) 
        new_pt = u'%s\\%s'% (index, new_name) 
        print '[%d]O: %s' % ( x + 1, old_pt) 
        print '[%d]N: %s' % ( x + 1, new_pt) 
      else: 
        errors.append(item) 
    if errors and errors != []: 
      print 'Not Match:'
      logs({ 
        'index': index, 
        'title': 'Not Match', 
        'error_paths': errors, 
      }) 
      for i, item in enumerate(errors): 
        print item, '|', 
        if i % 5 == 4: 
          print '' 
      print '' 
  return correct 
   #---------------------------------------------------------------------- 
def manage(index): 
  """ 
  程序组织块 
  """
  file_filter = batch_rename_test(index) 
  do_choice = get_input_result( 
    word = 'Do with this(y / n)', 
    choice = ['y', 'n'] 
  ) 
  if do_choice == 'y': 
    batch_rename(index, dirs= file_filter) 
  print 'Finished !'
 
 if __name__ == '__main__': 
  path = WORKING_PATH 
  manage(index = path)

代码




python如何进行批量注释
使用【Ctrl+\/】快捷键多行注释;2、将需要注释的部分代码用三个双引号或者三个多引号括起来多行注释。选中要注释的代码,按住【Ctrl+A】快捷键全选,再按住【Ctrl+\/】快捷键多行注释。将需要注释的部分代码用三个双引号或者三个多引号括起来多行注释。推荐课程:Python入门与进阶教学视频(极客学院)

如何使用python写批处理
import subprocessimport sysret = subprocess.check_call(['ls', '-l'])if ret != 0: # something wrong! To deal with the exception sys.exit(ret)ret = subprocess.check_call(['rm', '-f', 'file_to_delete'])if ret != 0: # similar to the above #......

如何使用批处理执行python脚本,并把python脚本的控制台日志输出到一个l...
1, 用绝对路径试试:D:\\logs\\log.txt;2, 最后的exit去掉试试,反正最后一行执行完也会自然退出。3, 另写一个简单的python测试脚本,里面只有一行 print 'Hello World', 然后用上述批处理执行一下看看log对不对。

批处理与python代码混合编程的方法
cn-dos和bathome论坛里先后有帖子介绍和示范了批处理和各种语言脚本的混合编程,有兴趣可以搜索看看。python不挑剔文件后缀,只要程序中包含正确的python代码都可以用python 解释器解释执行。批处理与python的混合编程方法很简单,存为xx.bat,代码如下:"""::===这是注释 ::批处理与python程序的混合编程 ...

如何用python批量改文件名
可以用:coding:utf-8import osPath="文件所在文件夹路径"Pre="共同前缀字符串"Pref="改动后共同前缀字符串"Suc="共同后缀名"Sucf="改动后共同后缀名"S=Path+'\\\\'+PreSf=Path+'\\\\'+Preffor i in range(最大文件编号+1): os.system("copy %s%d.%s %s%d.%s"%(S,i,Suc,Sf,i,Suc...

python编程有什么用
例如,在金融领域,分析师可以利用Python对股票、债券等金融数据进行量化分析,从而辅助投资决策。在科研领域,科学家们可以利用Python处理实验数据,进行统计分析,甚至绘制出精美的图表来展示研究成果。其次,Python在人工智能领域也扮演着重要角色。TensorFlow、PyTorch等深度学习框架都是用Python编写的,这使得...

如何通过Python或批处理指令删除指定文件夹?
不清楚你的实际文件\/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行@echo off&cd \/d "%~dp0"&mode con lines=5000rem 根据一个txt文本文件里列出的路径,将指定文件或文件夹删除set #=Any question&set _=WX&set ...

python怎么批量注释
python怎么批量注释?在python中也会有注释很多行的时候,这种情况下就需要批量多行注释符了。多行注释是用三引号''' '''包含的,例如:可能有的人会说这不是和多行字符串混淆了吗,但是我看到的许多程序员也是这么用的,使用时候注意区分下就好。相关推荐:《Python教程》以上就是小编分享的关于...

怎么用python批量将ppt转换成pdf
其实,将PPT转成PDF不需要第三方工具,PPT另存为就能实现。1、在PPT中点击“文件”2、选择“另存为”3、点击“浏览”,弹出另存为的存储位置对话框,在“文件类型”下拉框中选择PDF即可

python批量为身份证打码
python批量为身份证打码方法如下对身份证号码中的日期用代替,importpandasaspdimportrefileName=打码数据.xlsxdf。根据查询相关公开信息显示,python批量为身份证打码方法如下对身份证号码中的日期用代替,importpandasaspdimportrefileName=打码数据.xlsxdf。GB116431999中有关公民身份号码的规定,根据精密的...

新民市17653026707: 如何用python批量改文件名 -
荀变宫颈: #----网上现有的代码,可用 import os def rename():count = 0path = 'C:\\Users\\Py_Test'filelist = os.listdir(path) # 该文件夹下所有的文件(包括文件夹)for files in filelist: # 遍历所有文件Olddir = os.path.join(path, files) # 原来的文件路径if os....

新民市17653026707: Python中如何实现文件的批量自动命名 -
荀变宫颈: 用os.listdir获取一个文件夹下的所有文件用循环遍历每一个文件,如果满足条件就用os.rename()方法重命名.如果不满足条件就放过去

新民市17653026707: 如何用python从文中获取文件名再用正则表达式批量修改文件名 -
荀变宫颈: 第零步:问题的提出 我在网上购买了星火英语的六级晨读美文100篇(六级早已高分飘过,不过很喜欢这些文章,买来重新品味),但是发现其文章的命名都为01.txt或10.txt等.为了便于检索需要修改文件名称.第一步:从文件中取出文件名....

新民市17653026707: python 如何给文件进行批量命名? -
荀变宫颈: import shutil shutil.move(r'M:\test.odt',r'M:\test_new.odt')

新民市17653026707: python如何批量修改不同文件夹下的txt格式的文件名?急 -
荀变宫颈: 只需要将B文件夹中的 a.txt 重命名为 b.txt 就行了.注:在Windows系统中,不区分文件名的大小写,换句话说,a.txt 与 A.txt 相同.

新民市17653026707: Python如何实现将一个文件夹里面的文件重命名并放到另外一个文件夹里面? -
荀变宫颈: 用acdsee软件实现保留原文件名的重命名.这个软件是目前最常见的看图软件,可以借助这个软件智能的批量重命名.用它打开任意相片,点击工具条的浏览,选中所有文件夹后alt r就打开了重命名功能

新民市17653026707: 如何用python批量修改文件后缀 -
荀变宫颈: 把需要改的文件遍历出来,split('.')切割文件名,改后缀就行了.一般文件名不会有两个“.”吧,如果有的话,自己在判断下.

新民市17653026707: 批量修改文件名的几种方法 -
荀变宫颈: 其实这是简便的方法批量修改文件名的.今天小编就将大家两个办法来批量修改文件名,相信学会了其中的技巧,你在处理文件、办公时一定会事半功倍的.一、用系统自带预置功能修改在你的Windows电脑上批量修改文件名是非常简单的....

新民市17653026707: python 修改文件名 -
荀变宫颈: import os import sys path = "D:\emojis" for (path,dirs,files) in os.walk(path):for filename in files:newname = "emoji_"+filename os.rename(path+"\\"+filename , "D:\new_emojis"+"\\"+newname) 扩展资料:python文件和目录操作方法1...

新民市17653026707: 怎么批量修改文件名(使用Replace Pioneer)? -
荀变宫颈: 用Replace Pioneer把文件名的一部分替换成空,很简单,详细步骤:1. 打开Tools->Batch Runner菜单2. 把待处理文件从windows拖拽到Batch Runner窗口中3. 选中set output filename选项,把后面的${FILENAME}改为:${FILENAME}{replace,'注会审计·刘圣妮基础班',''}4.观察output file一列的新文件名预览是否符合要求,点击File Rename即可.更多文件重命名,参考:

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网