python实现文件名批量替换和内容替换

 更新时间:2014年03月20日 11:44:04   作者:  
这篇文章主要介绍了python实现文件名批量替换和内容替换,第一个例子可以指定文件类型,需要的朋友可以参考下

指定文件夹,指定文件类型,替换该文件夹下全部文件的内容。

注意在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修改IP地址的常见方法总结

    Python修改IP地址的常见方法总结

    在网络编程中,可能会遇到需要修改IP地址的情况,Python提供了一些功能强大的库和模块,可以帮助我们实现IP地址的修改操作,本文将介绍几种常见的方法,以及如何使用它们来修改IP地址,需要的朋友可以参考下
    2023-12-12
  • Numpy中对向量、矩阵的使用详解

    Numpy中对向量、矩阵的使用详解

    这篇文章主要介绍了Numpy中对向量、矩阵的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Python Requests 基本使用及Requests与 urllib 区别

    Python Requests 基本使用及Requests与 urllib 区别

    在使用Python爬虫时,需要模拟发起网络请求,主要用到的库有requests库和python内置的urllib库,一般建议使用requests,它是对urllib的再次封装,今天通过本文给大家讲解Python Requests使用及urllib区别,感兴趣的朋友一起看看吧
    2022-11-11
  • Python学习笔记之open()函数打开文件路径报错问题

    Python学习笔记之open()函数打开文件路径报错问题

    这篇文章主要介绍了Python学习笔记之open()函数打开文件路径报错问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Appium+python自动化怎么查看程序所占端口号和IP

    Appium+python自动化怎么查看程序所占端口号和IP

    这篇文章主要介绍了Appium+python自动化怎么查看程序所占端口号和IP,本文以FQ工具 Lantern 为例,通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2019-06-06
  • Python实现随机生成一个汉字的方法分享

    Python实现随机生成一个汉字的方法分享

    这篇文章主要为大家详细介绍了Python如何实现随机生成一个汉字的功能,文中的示例代码讲解详细,对我们深入了解Python有一定的帮助,需要的可以参考一下
    2023-01-01
  • python数据分析之将爬取的数据保存为csv格式

    python数据分析之将爬取的数据保存为csv格式

    Python内置了CSV模块,可直接通过该模块实现csv文件的读写操作,在web应用中导出数据是比较常见操作,下面这篇文章主要给大家介绍了关于python数据分析之将爬取的数据保存为csv格式的相关资料,需要的朋友可以参考下
    2022-06-06
  • 详解DBSCAN算法原理及其Python实现

    详解DBSCAN算法原理及其Python实现

    DBSCAN,即Density-Based Spatial Clustering of Applications with Noise,基于密度的噪声应用空间聚类,本文将详细介绍DBSCAN算法的原理及其Python实现,需要的可以参考下
    2023-12-12
  • python中使用正则表达式的连接符示例代码

    python中使用正则表达式的连接符示例代码

    在正则表达式中,匹配数字或者英文字母的书写非常不方便。因此,正则表达式引入了连接符“-”来定义字符的范围,下面这篇文章主要给大家介绍了关于python中如何使用正则表达式的连接符的相关资料,需要的朋友可以参考下。
    2017-10-10
  • 简单的连接MySQL与Python的Bottle框架的方法

    简单的连接MySQL与Python的Bottle框架的方法

    这篇文章主要介绍了简单的连接MySQL与Python的Bottle框架的方法,主要基于mysql-connector插件,需要的朋友可以参考下
    2015-04-04

最新评论