1. 程式人生 > 其它 >python全域性替換檔案內容指令碼

python全域性替換檔案內容指令碼

#!/usr/bin/python
#coding=utf8

# 用替換檔案裡的內容 替換掉 原始檔中 指定的字串(正則匹配),生成目標檔案(新檔案)
import re

try:
    count = 0 ##記錄替換次數 
    f_rep = open("C:\\Users\\harol\\Downloads\\替換檔案.txt", 'r', encoding='utf-8')   # 需要替換的字元檔案
    f_older = open("C:\\Users\\harol\\Downloads\\被替換檔案.txt", 'r+', encoding='utf-8')    ## 被替換的原始檔(模板等)
    f_new = open("C:\\Users\\harol\\Downloads\\新檔案.txt", 'w+', encoding='utf-8')     ## 開啟檔案 (替換後的新檔案)
    
    order_read = f_older.read()     ##被替代檔案字串
    pat = re.compile("(3[a-zA-Z0-9]{9})")     ## 正則匹配被替代檔案
    order_list = pat.split(order_read)      ## 檔案被目標字元分割
    m1 = pat.findall(order_read)         ## 目標列表
    lines = f_rep.readlines()            ## 替代檔案內容列表
    line =[]
    for lin in lines:
        lin = lin.strip()
        line.append(lin)           ## 去除替代檔案列表的換行符
    while count < len(m1) and count< len(line):
        order_list[2*count+1]=line[count]      ## 替換新的檔案列表
        count += 1
    l_new = ''.join(order_list)         ## 列表轉換為字串
    f_new.write(l_new)                  ## 字串寫入檔案
    print(l_new)
except Exception as e:
    print(e)
finally:
    f_rep.close()
    f_older.close()
    f_new.close()          ##  關閉檔案

print(count)