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通过openpyxl生成Excel文件的方法
May 12 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
tensorflow的计算图总结
Jan 12 Python
Python描述符descriptor使用原理解析
Mar 21 Python
Python利用for循环打印星号三角形的案例
Apr 12 Python
python 连续不等式语法糖实例
Apr 15 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
Python实现简单得递归下降Parser
May 02 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 批量删除 sql语句
2009/06/05 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
六个窍门助你提高Python运行效率
2015/06/09 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Python实现Event回调机制的方法
2019/02/13 Python
python集合是否可变总结
2019/06/20 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
python 实现生成均匀分布的点
2019/12/05 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
学习“七一”讲话精神体会
2014/07/08 职场文书
物流管理专业推荐信
2014/09/06 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
2014年妇女工作总结
2014/12/06 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
行政处罚听证告知书
2015/07/01 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
Redis中一个String类型引发的惨案
2021/07/25 Redis