python sys.argv(全局文本索引替换)
2024-09-08 18:53:01
#利用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)
最新文章
- DevExpress.chartContro控件保存图片和打印图片
- 对前端的一个H5项目的所思所想
- 升级centos内核到最新版本
- android05
- 性能测试-Jmeter
- uva 11143
- 10670 Work Reduction (贪心 + 被题意坑了- -)y
- nau8822 codec driver 录音时mic bias 无法自动打开问题
- C#视频总结
- 2018-2019-2 20175126谢文航 实验一《Java开发环境的熟悉》实验报告
- RabbitMQ 延时消息设计
- 和组合数有关的dp
- javascript判断两个对象属性以及值是否相等
- js控制html5 【video】标签中视频的播放和停止
- facebook api &; oauth protocal
- python之路之迭代器与生成器
- .NET中的FileUpload控件的使用-原生JS(二)
- “全栈2019”Java多线程第二十七章:Lock获取lock/释放unlock锁
- Head First Java &; 构造函数
- Codeforces Beta Round #9 (Div. 2 Only) B. Running Student 水题
热门文章
- dotTrace工具
- OpenJudge 1.8.11 图像旋转
- 微服务项目Git仓库自动化脚本
- 【Surface Detection】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection
- P1848 [USACO12OPEN]Bookshelf G
- 【学习笔记】Tarjan 图论算法
- 【开源】libinimini:适用于单片机的极简 ini 解析库
- 实现一个简单的在浏览器运行Dotnet编辑器
- spring中Utils工具类注入问题
- 这是一篇乖巧的草稿——vscode上传代码到代码托管平台GitHub