#利用sys.argv(实现从程序外部向程序传递参数。)写一个脚本。
#全局替换(old_str to new_str,filename)

import sys #导入sys模块

print(sys.argv)
old_str = sys.argv[1] #因为索引0是sys的本身路径,所以开始索引为1
new_str = sys.argv[2] #创建三个索引:要被替换的字符、新的字符与文件名
filename = sys.argv[3]

#1、读取文件和把文件导入内存
f = open(filename, mode="r+") #导入文件
data = f.read() #将文件写入内存 

#2.替换与计数
old_str_count = data.count(old_str) #创建计数变量
new_data = data.replace(old_str, new_str) #利用replace直接替换

#3、清空文件        
f.seek(0) #把光标定位到要清空的位置。seek跟的参数是 字节
f.truncate() #truncate函数:清空光标后面的所有内容

#4、保存到新文件
f.write(new_data) #write函数:给文件写入新的内容
print(f"成功替换字符'{old_str}'个,为'{new_str},共'{old_str_count}'个")


注意:
1、不能直接在run运行程序,直接运行报错:IndexError: list index out of range

2、需要在终端运行

3.格式 :python +文件名 + 索引1 + 索引2 +文件名(python 全局文本检索替换.py arg1 arg2 filename)

最新文章

  1. DevExpress.chartContro控件保存图片和打印图片
  2. 对前端的一个H5项目的所思所想
  3. 升级centos内核到最新版本
  4. android05
  5. 性能测试-Jmeter
  6. uva 11143
  7. 10670 Work Reduction (贪心 + 被题意坑了- -)y
  8. nau8822 codec driver 录音时mic bias 无法自动打开问题
  9. C#视频总结
  10. 2018-2019-2 20175126谢文航 实验一《Java开发环境的熟悉》实验报告
  11. RabbitMQ 延时消息设计
  12. 和组合数有关的dp
  13. javascript判断两个对象属性以及值是否相等
  14. js控制html5 【video】标签中视频的播放和停止
  15. facebook api & oauth protocal
  16. python之路之迭代器与生成器
  17. .NET中的FileUpload控件的使用-原生JS(二)
  18. “全栈2019”Java多线程第二十七章:Lock获取lock/释放unlock锁
  19. Head First Java & 构造函数
  20. Codeforces Beta Round #9 (Div. 2 Only) B. Running Student 水题

热门文章

  1. dotTrace工具
  2. OpenJudge 1.8.11 图像旋转
  3. 微服务项目Git仓库自动化脚本
  4. 【Surface Detection】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection
  5. P1848 [USACO12OPEN]Bookshelf G
  6. 【学习笔记】Tarjan 图论算法
  7. 【开源】libinimini:适用于单片机的极简 ini 解析库
  8. 实现一个简单的在浏览器运行Dotnet编辑器
  9. spring中Utils工具类注入问题
  10. 这是一篇乖巧的草稿——vscode上传代码到代码托管平台GitHub