使用replace时必须用
str=str.replace(old,new)
例如:
如果用 str.replace(old,new)会不起作用。
例如:
注意:若str中没有old变量,也不会报错
应用:
练习题 —— 全局替换程序:
1.写一个脚本,允许用户按以下方式执行时,即可以对指定文件内容进行全局替换
python your_script.py old_str new_str filename
2.替换完毕后打印替换了多少处内容
# @Time :2019/6/8 20:57 ''' 练习题1 —— 全局替换程序: 1.写一个脚本,允许用户按以下方式执行时,即可以对指定文件内容进行全局替换 python your_script.py old_str new_str filename 2.替换完毕后打印替换了多少处内容 ''' import os import sys my_sys = sys.argv # 接收输入的参数 if len(my_sys) != 4: print("Wrong inputing!") os._exit(0) else: print("Replacing....") old_str = str(my_sys[1]) new_str = str(my_sys[2]) filename = my_sys[3] new_file = filename + "_new" count = 0 with open(filename, mode='r', encoding='utf-8') as f: data = f.read() if old_str in data: data = data.split("\n") # 用\n分割字符串输出为列表 f_new = open(new_file, mode='w', encoding='utf-8') # 创建了文本迭代器 for i in data: if old_str in i: count += 1 i = i.replace(old_str, new_str) f_new.write(i + "\n") # 写入文件 f_new.close() if count > 0: if os.path.exists(filename): os.remove(filename) os.replace(new_file, filename) print("替换成功,替换了{0}处".format(count)) else: print("{0}文件中没有{1}".format(filename, old_str))