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的Flask框架中SQLAlchemy使用时的乱码问题解决
Nov 07 Python
django manage.py扩展自定义命令方法
May 27 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
python BeautifulSoup库的安装与使用
Dec 17 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 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短域名转换为实际域名函数
2011/01/17 PHP
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
Python实现方便使用的级联进度信息实例
2015/05/05 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
Python科学计算之Pandas详解
2017/01/15 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
python实现随机漫步方法和原理
2019/06/10 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
python异常处理try except过程解析
2020/02/03 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
暑假实习求职信范文
2013/09/22 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
公司地址变更通知
2015/04/25 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang