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回调函数用法实例分析
May 09 Python
python中学习K-Means和图片压缩
Nov 20 Python
Python文本特征抽取与向量化算法学习
Dec 22 Python
python存储16bit和32bit图像的实例
Dec 05 Python
深入理解Django-Signals信号量
Feb 19 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
python+gdal+遥感图像拼接(mosaic)的实例
Mar 10 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
Python Django 后台管理之后台模型属性详解
Apr 25 Python
python+opencv实现目标跟踪过程
Jun 21 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
drupal 代码实现URL重写
2011/05/04 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
Django如何实现内容缓存示例详解
2017/09/24 Python
Python实现网站表单提交和模板
2019/01/15 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
音乐教育感言
2014/03/05 职场文书
会计学习心得体会
2014/09/09 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
中学生旷课检讨书500字
2014/10/29 职场文书
十月围城观后感
2015/06/08 职场文书
公司管理建议书
2015/09/14 职场文书