【Python入门教程】批量修改文件名,批量移动文件
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。本篇文章是“Python教程”专栏的第一篇文章,本专栏旨在与读者共同交流Python学习过程中遇到的一些问题。
os的全称为Operating System,即操作系统。Python的os库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数,可以进行文件/文件夹的打开,关闭等等与系统相关的操作。
os.rename函数可以将文件重命名或者对路径重命名实现文件夹的移动,其中包含两个参数:src代表原始路径及文件名,dst代表修改后的路径及文件名。
os.listdir函数用于返回指定的文件夹包含的文件或文件夹的名字的列表,参数为文件夹的目录。
本文分享做项目时用到的批量修改文件名、移动文件的相关代码,仅作为学习交流使用!!!
一、批量重命名

上图是我从百度上下载的宠物狗图片,其格式为WEBP,我如果想让它变成JPG格式,一个个重命名就太浪费时间了,我们可以使用Python的os库直接批量重命名处理。可以通过(1、2、3、4)这种顺序命名,也可以自己决定。
下面是完整代码,因为只涉及两个函数,所以语句比较简单。这里使用了一个for循环,用来遍历目录中所有的文件,os.listdir函数是将目录中所有文件名以列表的形式展开,可以使用print(os.listdir('G:/'))来查看列表的形式,os.rename函数用来对文件重命名或者修改路径:
# -*- coding: utf-8 -*-
"""
@Time : 2023/4/12 15:50
@Auth : RS迷途小书童
@File :批量重命名.py
@IDE :PyCharm
"""
import os
# 导入os库
lists = os.listdir('G:/1')
# 获取指定文件夹下所有文件名
# lists包含文件夹下所有的文件名
n = 1
# 定义一个变量,这里我是希望重新对图片进行编号,所以需要这个变量
for list1 in lists:
# 遍历lists中的所有文件名
os.rename('G:/1/' + list1, 'G:/1/' + str(n) + ".jpg")
# 前者是旧名称,前面是文件所在位置,后面是文件名(这里使用for循环遍历了lists,所以list1就是当前的文件名)。
# 后面是新名称,前面是文件要放的位置,后面是文件名,可以自己修改(例如这里我是通过变量n,将图片从1开始编号),还可以修改文件格式(后面+你想变成的格式)
n = n + 1
程序运行效果图:
如果想要重命名成其他的名字,如日期、原名、自定义名等,可以自行修改,文章后面有相关的说明。

二、 批量移动文件
要想完成文件的移动操作,只需要将上面完整的代码中的第二个'G:/1/'修改成你想移动的路径就行了。这样原路径下的所有文件都会移动到新的目录下,其原理其实不算是移动,只是修改了路径,但实现效果就是移动的样子,主要是因为可以同时重命名和修改路径,所以一般我都采用os.rename这个函数,主打一个“懒”字。
os.rename('G:/1/' + list1, 'G:/1/' + str(n) + ".jpg")
例如,这里我将其修改为'F:/new/':
os.rename('G:/1/' + list1, 'F:/new/' + str(n) + ".jpg")
这样该文件夹下所有的文件就都移动到F盘中的new文件夹中了。如果你想保留原来的名字,就不用动后面的参数,只修改前面的路径即可。如这里修改后和修改前都是list1,只有前面的路径不一样,这样就实现了文件的移动。
相关代码如下:
os.rename('G:/1/' + list1, 'F:/new/' + list1)
因为本次项目实现的功能简单,所以代码编写格式没有非常规范,仅限大家学习交流!如果有问题可以随时留言,大家一起学习进步!!!
后续博主会持续更新Python的相关教程,同时分享一些代码,大家一起交流学习。如果大家有Python或者ENVI相关的问题
【Python入门教程】批量修改文件名,批量移动文件的更多相关文章
- python:批量修改文件名批量修改图片尺寸
批量修改文件名 参考博客:https://www.cnblogs.com/zf-blog/p/7880126.html 功能:批量修改文件名 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- Python 批量修改文件名并移动文件到指定目录
# -*- coding: utf-8 -*- import os, sys,re,shutil from nt import chdir #读取中文路径 u'' path=u"D:\\zh ...
- 利用 Python 批量修改文件名
开发的第一步,首先得熟悉脚本中使用的模块函数,废话不多说,开干! 1 函数介绍 1.1 os 模块 (1)os.lisdir() >>> import os >>> ...
- 用python批量修改文件名
从youtube上当下来百来首mv,每个都需要去掉视频,这还挺好弄得,格式工厂一弄就完了,但是文件名,都带有乱七八糟的*啥的巴拉巴拉的,咋修改啊,几百首总不可能一个一个rename吧 #批量修改文件名 ...
- ML二:python批量修改文件名-测试KDTree
(1):#批量修改文件名 import os import numpy as np import string import shutil prefix =''#单引号,前缀! sufix ='txt ...
- [转载][记录]shell 批量修改文件名
参考了:[新手入门] shell脚本批量修改文件名 4楼回复 我刚好是在vagrant+ubuntu中进行开发,windows手动修改太麻烦. #!/bin/ksh ls *.htm | while ...
- shell脚本:批量修改文件名
参考链接1:shell脚本:批量修改文件名(删除文件名中字符) 参考链接2:linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 ) 参考链接3:每天一个linux ...
- 使用Java中File类批量创建文件和批量修改文件名
批量创建文件 int cont = 1; String s = "E:\\学习资料\\Java笔记-"; while(cont<100){ File f = new File ...
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等
http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html linux下二进制文件查找: strings 0000.ts | grep -o " ...
- linux批量修改文件名的shell脚本
linux中批量修改文件名的shell脚本代码,主要是使用了rename,结合shell,喜欢的朋友可以参考下 使用 rename 命令 ======================== NAME ...
随机推荐
- 拒绝“爆雷”!GaussDB(for MySQL)新上线了这个功能
摘要:智能把控大数据量查询,防患系统奔溃于未然. 本文分享自华为云社区<拒绝"爆雷"!GaussDB(for MySQL)新上线了这个功能>,作者:GaussDB 数据 ...
- react webpack自定义配置
在react当中,webpack的配置是被隐藏了的,如果想要配置webpack,有两种方法: 一.暴露出webpack的配置文件(不推荐) 执行 npm run eject 二.使用craco添加配置 ...
- Linux线程同步必知,常用方法揭秘!
一.为什么要线程同步 在Linux 多线程编程中,线程同步是一个非常重要的问题.如果线程之间没有正确地同步,就会导致程序出现一些意外的问题,例如: 竞态条件(Race Condition):多个线程同 ...
- GKCTF X DASCTF应急挑战杯-Maple_root-Writeup
GKCTF X DASCTF应急挑战杯-Maple_root-Writeup 参赛队员: b4tteRy, x0r, f1oat 最终成绩:2285 最终排名:27 总结 经过最近几次类线下的演练,感 ...
- AllenBradley罗克韦尔CIP通信协议介绍 C# AllenBradley(CIP)读写操作PLC数据 C#罗克韦尔(CIP)PLC通信 全开源下载
罗克韦尔CIP通信协议(Control and Information Protocol)是一种面向对象的通信协议,它是用于工业自动化领域的数据通信协议.CIP协议可以在不同厂商.不同类型的自动化设备 ...
- 学习docker看此文足以
什么是 Docker Docker 最初是 dotCloud 公司创始人 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 ,主要项目代码在 上进行 ...
- 学习关于JavaScript常用的8大设计模式
JavaScript 常用的8大设计模式有 工厂模式:工厂模式是一种创建对象的模式,可以通过一个共同的接口创建不同类型的对象,隐藏了对象的创建过程. 单例模式:单例模式是一种只允许实例化一次的对象模式 ...
- [大数据]sqoop安装与运用
1 文由 项目使用场景:OLTP Oracle 数据导入到 OLAP HIVE 2 Sqoop简述 Apache Sqoop(TM) 是一款开源的ETL工具,设计用于在 Apache Hadoop和结 ...
- xtrabackup: error: xb_load_tablespaces() failed with error code 57
问题描述:在数据库上运行xtrabackup备份脚本出现的一些报错 DB_version:mysql8.0.26 Xtrabackup:percona-xtrabackup-8.0.27-19-Lin ...
- python选出一定数量的随机文件到某个文件夹
import os import random import shutil def move_file(target_path, save_path, number): file_list = os. ...