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利用装饰器进行运算的实例分析
Aug 04 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
django框架基于模板 生成 excel(xls) 文件操作示例
Jun 19 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
python数据类型可变不可变知识点总结
Mar 06 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
容易被忽略的Python内置类型
Sep 03 Python
Python collections模块的使用方法
Oct 09 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 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网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
基于jQuery的图片剪切插件
2011/08/03 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
详解JavaScript 的变量
2019/03/08 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
php使用递归与迭代实现快速排序示例
2014/01/23 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
库房主管岗位职责
2013/12/31 职场文书
住房租房协议书
2014/08/20 职场文书
个人委托书范本汇总
2014/10/01 职场文书
三人合伙协议书范本
2014/10/29 职场文书
2015年清明节活动总结
2015/02/09 职场文书
天那边观后感
2015/06/09 职场文书
个人向公司借款协议书
2016/03/19 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
Python简易开发之制作计算器
2022/04/28 Python
Python实现仓库管理系统
2022/05/30 Python