Python對指定文件內容進行全局替換


關於對指定文件內容進行全局替換的Python實現具體解釋都附在代碼里了
代碼如下:

import os
import sys
cs = sys.argv
old_cs = cs[1]     # 將要替換掉的值賦給old_cs
new_cs = cs[2]      # 將要替換成的值賦給new_cs
filename = cs[3]    # 將操作的文件名賦給filename
new_file = filename + "_new"
if len(cs) != 4:
    print('check it carefully and try it again!')
    os._exit(0)
else:
    print('------   replacing...   ------')
count = 0
with open(filename, mode='r', encoding='utf-8') as f:
    data1 = f.read()
    if old_cs in data1:
        data1 = data1.split('\n')  # 將i分行切片
        file_new = open(new_file, mode='w', encoding='utf-8')

        for i in data1:
            if old_cs in i:    # 判斷各行中是否存在old_cs
                i = i.replace(old_cs, new_cs)
                file_new.write(i + '\n')
                count += 1
        file_new.close()
if count > 0:
    if os.path.exists(filename):        # 判斷路徑中是否存在名為filename的文件
        os.remove(filename)             # 刪除該文件
        os.replace(new_file, filename)  # 用filename給new_file重命名
        print('replace successfully {} times'.format(count))
else:
    print('{0} is not in {1}...'.format(old_cs, filename))

操作文件data數據如下:

小明 男 178 71
小強 男 188 77
小夢 女 168 61
小藝 女 165 55
小妮 女 161 57
小萱 女 171 46
小頁 男 183 67

運行代碼及結果如下:

H:\Python\anzhuangbao\helloworld>python changefile.py 72 48 data
------ replacing... ------
replace successfully 2 times

H:\Python\anzhuangbao\helloworld>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM