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怎么学好python?
Oct 07 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Python开发的实用计算器完整实例
May 10 Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 Python
django中账号密码验证登陆功能的实现方法
Jul 15 Python
python add_argument()用法解析
Jan 29 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Python dict的常用方法示例代码
Jun 23 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
python 求两个向量的顺时针夹角操作
Mar 04 Python
Python干货实战之八音符酱小游戏全过程详解
Oct 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
JAVA/JSP学习系列之二
2006/10/09 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2013/01/22 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
Python 发送邮件方法总结
2020/08/10 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
中学教师师德师风演讲稿
2014/08/22 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
大学生创业事迹材料
2014/12/30 职场文书
公司联欢会主持词
2015/07/04 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
golang为什么要统一错误处理
2022/04/03 Golang