【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 ...
随机推荐
- Sound Joy连接非华为手机热点
很简单,准备两个手机.常用手机和备用手机1.常用手机开启热点2.备用手机连接常用手机的热点,并且已经安装华为智慧生活app3.备用手机连接到常用手机热点后,再打开智慧生活app连接常用手机热点即可
- SQL优化---慢SQL优化
于2023.3.17日重写,之前写的还是太八股文太烂了一点逻辑都没有,这次重新写了之后,感觉数据库优化还是很有必要的,之前觉得不必要是我年轻了. 一.如何定位慢SQL语句 1.通过慢查询日志查询已经执 ...
- uniapp安卓离线打包权限问题
安卓离线打包需要在androidManifest.xml配置 在 manifest 节点下面加上权限(对应uniapp当中manifest.json当中安卓的权限配置),例如: <manifes ...
- vue之过滤、筛选功能的实现
目录 需求 代码 需求 给定一个列表(模拟数据),根据用户输入,自动筛选输入的内容并输出到屏幕 代码 <!DOCTYPE html> <html lang="en" ...
- [Java]变量及其初始化 与 类对象的初始化
1 变量 1.1 变量的[定义] 1.2 变量的[作用域] 1.3 变量的[初始值] 1.4 补充:缓存变量 1.5 变量的[分类]与[未初始化情况] 2 类对象 2.1 类对象的初始化/构造过程 1 ...
- xtrabackup+MySQL8全备+增备脚本
问题描述:运用xtrabackup进行mysql全备,mysql8之前使用的是innodbxtrabackup,mysql8之后开始使用xtrabackup,innobackupex把功能都集成到xt ...
- 【Java SE】网络编程
1. 网络编程概述 网络编程的目的:直接或者间接地通过网络协议与其他计算机实现数据交换,进行通讯. 网络编程两个主要的问题: ①如何精准地定位网络上的一台或多台主机,并定位主机上的特定应用 ②找到主机 ...
- GDOU-CTF-2023新生赛Pwn题解与反思
第一次参加CTF新生赛总结与反思 因为昨天学校那边要进行天梯模拟赛,所以被拉过去了.16点30分结束,就跑回来宿舍开始写.第一题和第二题一下子getshell,不用30分钟,可能我没想那么多,对比网上 ...
- class(类)和构造函数(原型对象)
构造函数和class的关系,还有面向对象和原型对象,其实很多人都会很困惑这些概念,这是第二次总结这些概念了,之前一次,没有class类,其实了解了构造函数,class也就很容易理解了 一. 构造函数和 ...
- Linux 内存管理 pt.1
哈喽大家好,我是咸鱼 今天我们来学习一下 Linux 操作系统核心之一:内存 跟 CPU 一样,内存也是操作系统最核心的功能之一,内存主要用来存储系统和程序的指令.数据.缓存等 关于内存的学习,我会尽 ...