命令行参数的传入问题
import sysa = sys.argv
print(a)
我想从命令行传入参数,传进去后,电脑下方的pycharm确实闪动了,应该是传参成功了,但是运行程序后却显示了:
Traceback (most recent call last):
File "D:/Python/FluentPython/chap12/demon10.py", line 6, in <module>
a = sys.argv
IndexError: list index out of range
这是什么原因啊?哪位前辈帮忙解答一下啊,谢谢啊 报错是超出索引
import sys
a = sys.argv
print(a)
逃兵 发表于 2021-7-19 10:31
报错是超出索引
我知道sys.argv是当前文件路径。但是我要从命令行传入参数,让他显示出来sys.argv,但是结果却没有显示。为什么? 江湖散人 发表于 2021-7-19 10:35
我知道sys.argv是当前文件路径。但是我要从命令行传入参数,让他显示出来sys.argv,但是结果却没有 ...
命令行前面需要输入python
python demon10.py 参数1 参数2 逃兵 发表于 2021-7-19 10:38
命令行前面需要输入python
import sys
a = sys.argv
print(a)
运行后,显示的是空列表,为啥呢? 江湖散人 发表于 2021-7-19 10:44
运行后,显示的是空列表,为啥呢?
这些参数是在运行内存中的
而非保存在py文件中
也就是说都是在运行过程中临时存在
为了实现外部传参的过程
#demon10.py
import sys
a,b,c=sys.argv
print(f'{a}是个{b}的{c}')
python demon10.py 今天 阳光明媚 日子
逃兵 发表于 2021-7-19 10:53
这些参数是在运行内存中的
而非保存在py文件中
也就是说都是在运行过程中临时存在
你的意思是无论如何,py文件都不能打印出命令行中的参数?
江湖散人 发表于 2021-7-19 11:05
你的意思是无论如何,py文件都不能打印出命令行中的参数?
通过终端运行 py文件 并传参 这样是能打印出来的
独立运行py文件是不行的
江湖散人 发表于 2021-7-19 10:44
运行后,显示的是空列表,为啥呢?
你这里蓝色的截图就是通过终端运行并打印的
下面的
['参数1','参数2']
就是Python的打印结果 逃兵 发表于 2021-7-19 11:10
你这里蓝色的截图就是通过终端运行并打印的
下面的
['参数1','参数2']
也就是说,通过命令行终端才能打印出sys.argv中的参数,
而运行python文件是没办法直接打印sys.argv的参数。
是这么个意思吗? 江湖散人 发表于 2021-7-19 11:22
也就是说,通过命令行终端才能打印出sys.argv中的参数,
而运行python文件是没办法直接打印sys.argv的参 ...
是的 逃兵 发表于 2021-7-19 11:23
是的
好的 ,谢谢你!
页:
[1]