加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-17 07:19:59 所属栏目:Python 来源:网络整理
导读:指定文件夹,指定文件类型,替换该文件夹下全部文件的内容。 注意在window下的读写内容需要指定编码,还需要在文件头指定#coding:utf-8 编码,避免出现编码问题。 复制代码 代码如下: #coding:utf-8 import os import os.path path='.' oldStr='.php' newStr

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

注意在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基于正则表达式实现文件内容替换的方法
  • python逐行读取文件内容的三种方法
  • Python创建文件和追加文件内容实例
  • Python文件操作,追加文本内容实例
  • Python批量修改文本文件内容的方法
  • Python实现给文件添加内容及得到文件信息的方法
  • Python读取文件内容的三种常用方式及效率比较
  • Python实现文件内容批量追加的方法示例
  • Python实现替换文件中指定内容的方法

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读