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 基础学习第二弹 类属性和实例属性
Aug 27 Python
python 调用HBase的简单实例
Dec 18 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 Python
通过python改变图片特定区域的颜色详解
Jul 15 Python
利用python计算时间差(返回天数)
Sep 07 Python
Python银行系统实战源码
Oct 25 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
python获取栅格点和面值的实现
Mar 10 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
PHP echo()函数讲解
2019/02/15 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
js Math 对象的方法
2013/09/01 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
Node做中转服务器转发接口
2017/10/18 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
通过Python实现自动填写调查问卷
2017/09/06 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
pandas分批读取大数据集教程
2020/06/06 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
Python实现自动签到脚本功能
2020/08/20 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
金融管理专业求职信
2014/07/10 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
迎新生欢迎词
2015/01/23 职场文书
大学生就业意向书
2015/05/11 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书