模拟sys.argv

sys.argv是list结构,可以直接赋值
如程序入口是main.py, 正常的命令行模式为python main.py arg1 arg2 arg3。
则sys.argv为[‘main.py’,‘arg1’,‘arg2’,‘arg3’]

可以有三种方式在不改变源码的基础上使用sys.argv。
1、使用vscode配置文件,在lauch.json中,添加args参数

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "args":["User In Lauch File"]
        }
    ]
}

2、直接赋值

sys.argv=[...]

3、使用input()输入并赋值给sys.argv。
可以直接令sys.argv=[‘main.py’,‘arg1’,‘arg2’,‘arg3’],这样方便打断点调试,如在VSCODE之中,也可以结合input()动态指定。

args=input().split(" ")

示例代码:

import sys
def hello():
    print("Hello,",sys.argv[1])

if __name__=="__main__":
    print("1.Testing command line:")
    print(sys.argv)    
    hello()    
    print()
    
    print("2.Testing assing value to sys.argv in python code:")
    name='User In Code'
    sys.argv=["main.py",name]
    print(sys.argv)
    hello()
    print()
    
    print("3.Testing input():")
    sys.argv=input("eg. main.py name:").split(" ")
    print(sys.argv)
    hello()

VSCODE中按F5进入调试模式,输出为:

1.Testing command line:
['g:\\XML\\github\\pylint-main\\pylint\\pyreverse\\test.py', 'User In Lauch File']
Hello, User In Lauch File

2.Testing assing value to sys.argv in python code:
['main.py', 'User In Code']
Hello, User In Code

3.Testing input():
eg. main.py name:main.py User3
['main.py', 'User3']
Hello, User3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值