python实现文件名批量替换和内容替换


Posted in Python onMarch 20, 2014

指定文件夹,指定文件类型,替换该文件夹下全部文件的内容。

注意在window下的读写内容需要指定编码,还需要在文件头指定#coding:utf-8 编码,避免出现编码问题。

#coding:utf-8 
import os
import os.path
path='.'
oldStr='.php'
newStr='.html'
for (dirpath, dirnames, filenames) in os.walk(path):
    for file in filenames:
        if os.path.splitext(file)[1]=='.html':
            print(file)
            filepath=os.path.join(dirpath,file)
            try:
                text_file = open(filepath, "r")
                lines = text_file.readlines()
                text_file.close()
                output  = open(filepath,'w',encoding= 'utf-8')
                for line in lines:
                    #print(line)
                    if not line:
                        break
                    if(oldStr in line):
                        tmp = line.split(oldStr)
                        temp = tmp[0] + newStr + tmp[1]
                        output.write(temp)
                    else:
                        output.write(line)
                output.close()
            except Exception:
                print(Exception)
                break

这个示例可以批量替换文件名和内容

#!/usr/bin/env python
# -*- coding: utf-8 -*-import os, re
def multi_replace(text, adict):
    rx = re.compile('|'.join(map(re.escape, adict)))
    def xlat(match):
        return adict[match.group(0)]
    return rx.sub(xlat, text)
def batrename(curdir, pairs):
    for fn in os.listdir(curdir):
        newfn = multi_replace(fn, pairs)
        if newfn != fn:
            print("Renames %s to %s in %s." % (fn, newfn, curdir))
            os.rename(os.path.join(curdir, fn), os.path.join(curdir, newfn))
        file = os.path.join(curdir, newfn)
        if os.path.isdir(file):
            batrename(file, pairs)
            continue
        text = open(file).read()
        newtext = multi_replace(text, pairs)
        if newtext != text:
            print("Renames %s." % (file,))
            open(file, 'w').write(newtext)
if __name__=="__main__":
    while True:
        oldname = raw_input("Old name: ")
        newname = raw_input("New name: ")
        if oldname and newname:
            batrename(os.path.abspath('.'), {oldname:newname})
        else: break
Python 相关文章推荐
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
python清除函数占用的内存方法
Jun 25 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
如何获取Python简单for循环索引
Nov 21 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
python自动化办公操作PPT的实现
Feb 05 Python
Python读写Redis数据库操作示例
Mar 18 #Python
python实现k均值算法示例(k均值聚类算法)
Mar 16 #Python
python实现保存网页到本地示例
Mar 16 #Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 #Python
Python使用代理抓取网站图片(多线程)
Mar 14 #Python
python3.3使用tkinter开发猜数字游戏示例
Mar 14 #Python
Python subprocess模块学习总结
Mar 13 #Python
You might like
php设计模式 Proxy (代理模式)
2011/06/26 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
Node.js事件驱动
2015/06/18 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python学习思维导图(必看篇)
2017/06/26 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
中医临床专业自我鉴定范文
2014/01/15 职场文书
高一数学教学反思
2014/02/07 职场文书
关于建议书的格式范文
2014/05/20 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
房产公证书
2015/01/23 职场文书
2015年材料员工作总结
2015/04/30 职场文书
师范生见习自我总结
2015/06/23 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python