python命令行传参以及字符串格式化的问题
天蓬老师
天蓬老师 2017-04-18 09:27:16
[Python讨论组]
def main():
    process1 = subprocess.Popen("111.exe C:\Python27\test\文本.txt -t 20 字符串1 字符串2", shell=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

    while True:
        line = process1.stdout.readline()
        aaa = open("success.txt", "a+")
        if not line:
            break
        print line
        aaa.write(line)
        aaa.close()
        hanshu(line)

def hanshu(line):
    if line.startswith('[字符串2]'):
        执行一系列操作,此处略...

    #print 'copeleted'



if __name__ == '__main__':
    main()

目前程序执行,需要在代码里改动字符串1 字符串2的值来执行,现在想改成命令行传参的格式,比如
111.py 字符串1 字符串2来执行

这种的,不知道怎么改。。 大牛求教育

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
阿神

sys模块可以直接调用参数

# 终端执行 python arg1 arg2
import sys
sys.argv[0] # ./path/python
sys.argv[1] # 参数1 arg1
sys.argv[2] # 参数2 arg2
巴扎黑

argparse

高洛峰

最简单的就是使用sys模块

#test.py

import sys
str1 = sys.argv[1]
str2 = sys.argv[2]
python test.py 字符串1 字符串2

还可以使用optparse、argparse等模块

#test.py

import optparse


def main():
    p = optparse.OptionParser()
    p.add_option('--name', '-n', default="xiaoming")
    p.add_option('--age', '-a', default="15")
    options, args = p.parse_args()
    print "name: %s " % options.name
    print "age: %s" % options.age
    
if __name__ == '__main__":
    main()
python test.py -n 字符串1 -a 字符串2

另外这里还有一些其他的命令行模块:Python最佳实践指南

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号