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登录Gmail并发送Gmail邮件的教程
Apr 17 Python
使用Python编写vim插件的简单示例
Apr 17 Python
Python线程详解
Jun 24 Python
基于python log取对数详解
Jun 08 Python
python3去掉string中的标点符号方法
Jan 22 Python
python批量下载抖音视频
Jun 17 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
python里的单引号和双引号的有什么作用
Jun 17 Python
浅谈如何使用python抓取网页中的动态数据实现
Aug 17 Python
python如何操作mysql
Aug 17 Python
用python开发一款操作MySQL的小工具
May 12 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中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
ECMAScript 创建自己的js类库
2012/11/22 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
Python语言生成水仙花数代码示例
2017/12/18 Python
Python3模拟登录操作实例分析
2019/03/12 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
情况说明书格式范文
2014/05/06 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
民主评议党员个人总结
2015/02/13 职场文书
民主生活会意见
2015/06/05 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏