Python如何对文件进行重命名

目录
  • 对文件进行重命名
  • 对文件夹下文件按顺序重命名
    • 先使用最简单的方法尝试一下
    • 我们就可以看到文件夹已经按照顺序重命名了
    • 接下来我们对文件进行重命名
    • 先建一个文本文档

对文件进行重命名

直接贴代码:

import os
srcFile = './actwork/linkFile/allExtLinks - 副本.txt'
dstFile = './actwork/linkFile/allExtLinks - copy.txt'
try:
    os.rename(srcFile,dstFile)
except Exception as e:
    print(e)
    print('rename file fail\r\n')
else:
    print('rename file success\r\n')

对文件夹下文件按顺序重命名

在处理机器学习的图片时,需要将图片根据类别放入不同文件夹中,在文件夹下也想将图片用数字递增重命名一下,方便后续处理。

首先,我们看一下python的重命名函数:

os.rename(src,dst)
  • src:要修改的目录名
  • dst:修改后的目录名

如果dst是一个存在的目录, 将抛出OSError。

注意:src和dst都是完整路径+文件名

首先,我们先对文件夹重命名

先使用最简单的方法尝试一下

import os
def myrename(path):
    file_list=os.listdir(path)
    i=0
    for fi in file_list:
        old_name=os.path.join(path,fi)
        new_name=os.path.join(path,str(i))
        os.rename(old_name,new_name)
        i+=1
if __name__=="__main__":
    path="D:/test/121"
    myrename(path)

我们就可以看到文件夹已经按照顺序重命名了

稍微改动一下,显得没有那么low

import os
def myrename(path):
    file_list=os.listdir(path)
    for i,fi in enumerate(file_list):
        old_name=os.path.join(path,fi)
        new_name=os.path.join(path,"N0."+str(i))
        os.rename(old_name,new_name)
if __name__=="__main__":
    path="D:/test/121"
    myrename(path)

效果是一样的,enumerate函数的作用就不再赘述了,我们还可以使用python zip来进行修改:

import os
def myrename(path):
    file_list=os.listdir(path)
    for i,fi in zip(range(len(file_list)),file_list):
        old_name=os.path.join(path,fi)
        new_name=os.path.join(path,"The."+str(i))
        os.rename(old_name,new_name)
if __name__=="__main__":
    path="D:/test/121"
    myrename(path)

效果一样:

接下来我们对文件进行重命名

上面的三种方法都是可以使用的,只需要稍微改动一下,我以函数enumerate为例演示一下:

先建一个文本文档

复制粘贴一堆,作为测试用,在函数中加入一个try-except,防止文件重命名出错,这里重命名需要是相同格式的文件,否则就会报错:

import os
def myrename(path):
    file_list=os.listdir(path)
    for i,fi in enumerate(file_list):
        old_dir=os.path.join(path,fi)
        filename="my"+str(i+1)+"."+str(fi.split(".")[-1])
        new_dir=os.path.join(path,filename)
        try:
            os.rename(old_dir,new_dir)
        except Exception as e:
            print(e)
            print("Failed!")
        else:
            print("SUcess!")
if __name__=="__main__":
    path="D:/test/121"
    myrename(path)

代码都是很简单的,入门小白,这里列举的也是最简单的方法。这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python实现文件批量重命名

    本文实例为大家分享了python实现文件批量重命名,供大家参考,具体内容如下 讲解 1.库:os 2.代码效果:对指定文件夹内所有文件重命名为1,2,3- 3.代码原理:使用os.listdir()遍历文件同时用os.rename()实现重命名 代码 import os def reName(dirname): count = 0 for cur_file in os.listdir(dirname): count += 1 oldDir = os.path.join(dirname, cur_

  • 一篇文章教你用Python实现一键文件重命名

    目录 应用背景 准备工作 上脚本 view.py 功能展示 打包方式 windows打包方式:pycharm打包为exe执行文件方法 总结 应用背景 背景:"由于工作需要可能需要对一些文件进行重命名的处理,但是可能操作起来比较烦,点错了就命名失败或者没带鼠标,用控制板操作起来比较麻烦等等场景" ps:以上都是200自我觉得比较烦,所以才出了这个小功能- 好了,此版本是基于上次文章的版本进行更新,(❕这次对上次的代码进行了更新,下文不会进行补充了哦,详细可以查看github上的源代码)详

  • python对指定目录下文件进行批量重命名的方法

    本文实例讲述了python对指定目录下文件进行批量重命名的方法.分享给大家供大家参考.具体如下: 这段python代码可对c:\temp目录下的所有文件名为"scroll_1"文件替换为"scroll_00" import os path = 'c:\\temp' for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True: newname = file.replace

  • python实现批量文件重命名

    本文实例为大家分享了python批量文件重命名的具体代码,供大家参考,具体内容如下 问题描述 最近遇到朋友求助,如何将大量文件名前面的某些字符删除. 即将图中文件前的编号删除. Python实现 用到了python中的os模块,os模块中的rename方法可以实现对文件的重命名 import os #path为批量文件的文件夹的路径 path = 'd:\\renamefolder' #文件夹中所有文件的文件名 file_names = os.listdir(path) #外循环遍历所有文件名,

  • python实现图片文件批量重命名

    本文实例为大家分享了python实现文件批量重命名的具体代码,供大家参考,具体内容如下 代码: # -*- coding:utf-8 -*- import os class ImageRename(): def __init__(self): self.path = 'D:/xpu/paper/plate_data' def rename(self): filelist = os.listdir(self.path) total_num = len(filelist) i = 0 for ite

  • Python如何对文件进行重命名

    目录 对文件进行重命名 对文件夹下文件按顺序重命名 先使用最简单的方法尝试一下 我们就可以看到文件夹已经按照顺序重命名了 接下来我们对文件进行重命名 先建一个文本文档 对文件进行重命名 直接贴代码: import os srcFile = './actwork/linkFile/allExtLinks - 副本.txt' dstFile = './actwork/linkFile/allExtLinks - copy.txt' try:     os.rename(srcFile,dstFile

  • Python3 实现文件批量重命名示例代码

    在Python中os模块里,os.renames() 方法用于递归重命名目录或文件.类似rename(). rename()方法语法格式如下: os.rename(old,new) old是需要修改的目录/文件名,new是修改后的目录/文件名,通过这个方法我们可以很轻松的完成批量在文件/目录增加固定前缀或者批量删除文件/目录固定前缀 . 以下代码Windows下和Linux都可以使用. 示例如下: 增加前缀'[Linuxidc.]': import os path='/home/linuxidc

  • python3图片文件批量重命名处理

    本文实例为大家分享了python3图片文件批量重命名的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # coding=utf-8 # 批量重命名图片名字从-2-01改成-1-01 import os import time class ImageRename(): def __init__(self): self.path = './' def rename(self): filelist = os.listdir(self.path) total_num =

  • Perl 文本文件的读写操作、文件的重命名和删除、多个文本文件的合并实现代码

    读文件: 复制代码 代码如下: #!perlopen filetxt,"/path/a.txt";   #  filetxt为文件句柄,用于和文件a.txt建立链接.文件句柄可任意取名,但不要和Perl自带的几个文件句柄重名.print <filetxt>;                 #  此处print函数用于显示文件a.txt的内容.<>为取行操作符,<文件句柄>用于读取所链接文件的内容.close filetxt;            

  • Java实现文件批量重命名具体实例

    Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应的文件进行重命名.此外,还可以在重命名模板中添加特殊符号,程序会将这些特殊符号替换成重命名后的文件编号. 思路分析: 1.先看视图层,需要一些JLabel控件分别显示指示用户的信息,三个JTextField控件分别显示所选路径.输入文件名模板即输入扩展名,两个JButton控件分别用来浏览文件夹和开

  • Java 实现文件批量重命名亲测可用(精简版)

    之前在网上下载了很多视频,解压缩后,发现里面每个文件前面都有一长串的网址,导致我根本看不清每个视频的名字到底叫什么? 网上搜了一些批量重命名的方法,可都不是我想要的,既然这样,干脆自己动手用Java写一个吧.测了一下应该没问题,现在分享出来. 先上代码: import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; /** * 重命名规则类 * @author ja

  • Java文件批量重命名批量提取特定类型文件

    原因: 因为在网上下载视频教程,有的名字特别长,一般都是机构或者网站的宣传,不方便直接看到视频的简介,所以做了下面的第一个功能. 因为老师发的课件中,文件夹太多,想把docx都放在同一个文件夹下面,一个一个找出来太麻烦,所以做了第二个功能. 最近刚刚学了Java文件和流的知识,所以正好练练手,这也是自己的第一个exe程序,分享一下哈. (导出jar文件,以及用工具exe4j生成exe文件,这部分省略了哈) 用到的知识: 用到Java中文件,流的知识,以及简单的GUI知识. 功能: 功能一:去除文

  • C#实现的文件批量重命名功能示例

    本文实例讲述了C#实现的文件批量重命名功能.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; //C#批量重命名文件代码的实现 //添加文件操作空间引用 using System.IO;

随机推荐