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实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
Python中字符串的格式化方法小结
May 03 Python
Python模拟三级菜单效果
Sep 11 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
解决python 文本过滤和清理问题
Aug 28 Python
python实现拼图小游戏
Feb 22 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
Java byte数组操纵方式代码实例解析
Jul 22 Python
python PIL模块的基本使用
Sep 29 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
7个超级实用的PHP代码片段
2011/07/11 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
PHP实现的购物车类实例
2015/06/17 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
关于layui flow loading占位图的实现方法
2019/09/21 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
Python中按值来获取指定的键
2019/03/04 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
程序员机试试题汇总
2012/03/07 面试题
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
森林防火宣传标语
2014/06/27 职场文书
成都人事代理协议书
2014/10/25 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python