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中函数的参数定义和可变参数用法实例分析
Jun 04 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
python覆盖写入,追加写入的实例
Jun 26 Python
Python彻底删除文件夹及其子文件方式
Dec 23 Python
python扫描线填充算法详解
Feb 19 Python
Python实现自动访问网页的例子
Feb 21 Python
Python生成器实现简单"生产者消费者"模型代码实例
Mar 27 Python
Python如何给函数库增加日志功能
Aug 04 Python
详解MindSpore自定义模型损失函数
Jun 30 Python
Python中字符串对象语法分享
Feb 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
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
php Smarty date_format [格式化时间日期]
2010/03/15 PHP
PHP防止跨域提交表单
2013/11/01 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
PHP Reflection API详解
2015/05/12 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
Web开发之JavaScript
2012/03/29 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
AngularJS中table表格基本操作示例
2017/10/10 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
python3操作mysql数据库的方法
2017/06/23 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
python如何建立全零数组
2020/07/19 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
旷课检讨书大全
2014/01/21 职场文书
大学毕业感言100字
2014/02/03 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL