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使用递归解决全排列数字示例
Feb 11 Python
python进阶教程之动态类型详解
Aug 30 Python
Python深入学习之内存管理
Aug 31 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
Python面向对象编程之继承与多态详解
Jan 16 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
Python subprocess库的使用详解
Oct 26 Python
Django框架序列化与反序列化操作详解
Nov 01 Python
Python for循环搭配else常见问题解决
Feb 11 Python
使用 Python 遍历目录树的方法
Feb 29 Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 Python
Python 调用 ES、Solr、Phoenix的示例代码
Nov 23 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
德生PL550的电路分析
2021/03/02 无线电
php 分页原理详解
2009/08/21 PHP
PHP的博客ping服务代码
2012/02/04 PHP
php中OR与|| AND与&&的区别总结
2013/10/26 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
php网页病毒清除类
2014/12/08 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
js arguments.callee的应用代码
2009/05/07 Javascript
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
express express-session的使用小结
2018/12/12 Javascript
详解angular2 控制视图的封装模式
2018/12/27 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
Python如何实现远程方法调用
2020/08/07 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
优秀女职工事迹材料
2014/02/06 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
工程质检员岗位职责
2015/04/08 职场文书
《火烧云》教学反思
2016/02/23 职场文书
Rust中的Struct使用示例详解
2022/08/14 Javascript