自己写了一个功能函数方便自己使用,突然意识到需要用到sys.argv来传参,于是记录一下。
python使用sys.argv来传参。例如:我自己写了一个字符替换的python程序replace.py。
# -*- coding:utf-8 -*-
import sysclass replace:
def __init__(self, argv):
'''
source: the old chars
destination: the new chars
'''
print '"'+argv[0]+'"'
if len(argv) == 5:
self.fileName = argv[1]
self.outFile = argv[2]
self.source = argv[3]
self.destination = argv[4]
elif len(argv) == 4:
self.fileName = argv[1]
self.outFile = argv[2]
self.source = argv[3]
self.destination = ''
elif len(argv) == 3:
self.fileName = "content.txt"
self.outFile = "result.txt"
self.source = argv[1]
self.destination = argv[2]
elif len(argv) == 2:
self.fileName = "content.txt"
self.outFile = "result.txt"
self.source = argv[1]
self.destination = ''
elif len(argv) == 1:
self.fileName = "content.txt"
self.outFile = "result.txt"
self.source = ":"
self.destination = ''def setSource(self, source):
self.source = sourcedef setDestination(self, destination):
self.destination = destinationdef replaceContent(self):
content = open(self.fileName, 'r')
result = open(self.outFile, 'w')
for line in content.readlines():
print >> result, line.replace(self.source, self.destination)
result.close()
content.close()def replaceContentPos(self, positions):
pos = 1
start = 0
content = open(self.fileName, 'r')
result = open(self.outFile, 'w')
for line in content.readlines():
if (pos == positions[start]):
print >> result, line.replace(self.source, self.destination)
start += 1
pos += 1
result.close()
content.close()if (__name__ == '__main__'):
mine = replace(sys.argv)
mine.replaceContent()
【Python main的命令行参数(sys.argv)】可以看到,我在每一次初始化时输出了传入参数的第一个参数,那么我在命令中就执行“replace.py : -.-(将”content.txt”文件中的”:”替换为”-.-“,并保存在”result.txt”中)“,结果如下:
- 原文件:
文章图片
- 命令行结果:
文章图片
可以看到输出的传入参数的第一个参数是我们源程序文件的绝对地址 - 执行结果:
文章图片
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)