關於對指定文件內容進行全局替換的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>