python批量替换文件名中的共同字符实例


Posted in Python onMarch 05, 2020

今天看新概念视频的时候播放器PotPlayer的播放列表总是不能正确排序,我看到这些视频的名字格式如下:

Lesson 1-2 单词解读.mp4

我认为是数字前面的Lesson和空格干扰了播放器的排序,就考虑把这个文件夹下所有的文件名批量删除Lesson和空格,使之变成:

1-2 单词解读.mp4

这里主要使用的就是os模块下的listdir,chadir和rename三个方法

虽然最后还是排序不正确,我只能怪播放器不好了。

代码如下

# -*- coding: UTF-8 -*-
import os

#获得文件夹下文件名列表
path=r"G:\BaiduNetdiskDownload\第1册"
path=unicode(path,"utf8")
file_list=os.listdir(path)

#选择要重命名的文件夹路径
os.chdir(path)

#将文件名中的Lesson和空格用空字符串替代
for file in file_list:
  os.rename(file,file.replace("Lesson ",""))

程序在调试的时候感觉python的2.x版本中文编码问题很扰人,最后将路径编码成utf-8格式解决。

补充知识:python实现替换某个文件中的某个字符串(全部替换)

我就废话不多说了,咱还是直接看代码吧!

#!/usr/bin/python
#-*-coding:utf-8-*-
import click
#不需要替换的文件
UNMATCH = (".DS_Store","loading","niutou_run","zhuyao")
#参数设置
@click.command()
@click.option("-root",help=u'根目录')
@click.option("-src",help=u'源字符')
@click.option("-dst",help=u'目标字符')

def run(**options):
	root = options["root"]
	src = options["src"]
	dst = options["dst"]
	for file in os.listdir(root):
		colorPrint("file:",file)
		if not isInTuple(file):
			jsonName = file + ".json"
			fileFullPath = root +"/" + file + "/" + jsonName
			fp = open(fileFullPath,"r+")
			tempStr = fp.read()
			result = re.sub(src,dst,tempStr)
			colorPrint("seek1:",fp.tell())
			fp.seek(0,0)
			colorPrint("seek2:",fp.tell())
			fp.write(result)
			fp.close()
#是否在UNMATCH中
def isInTuple(name):
	for temp in UNMATCH:
		if name == temp:
			return True
			break
	return False
#彩色打印
def colorPrint(desc,str):
	print('\033[1;31;40m')
	print(desc,str)
	print('\033[0m')
if __name__ == '__main__':
	run()

以上这篇python批量替换文件名中的共同字符实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 Python
配置 Pycharm 默认 Test runner 的图文教程
Nov 30 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
PyTorch基本数据类型(一)
May 22 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python3.5的包存放的具体路径
Aug 16 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
python批量修改xml属性的实现方式
Mar 05 #Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 #Python
Python实现在Windows平台修改文件属性
Mar 05 #Python
Pycharm最常用的快捷键及使用技巧
Mar 05 #Python
Python 去除字符串中指定字符串
Mar 05 #Python
Python脚本去除文件的只读性操作
Mar 05 #Python
Python IDE环境之 新版Pycharm安装详细教程
Mar 05 #Python
You might like
php5.3 废弃函数小结
2010/05/16 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
python概率计算器实例分析
2015/03/25 Python
Python数据操作方法封装类实例
2017/06/23 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
python实现朴素贝叶斯算法
2018/11/19 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
python 装饰器的基本使用
2021/01/13 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
元旦晚会策划方案
2014/02/18 职场文书
优秀员工获奖感言
2014/03/01 职场文书
装修协议书范本
2014/04/21 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
会计岗位职责
2015/02/03 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书