鱼C论坛

 找回密码
 立即注册
查看: 1490|回复: 11

[已解决]命令行参数的传入问题

[复制链接]
发表于 2021-7-19 10:28:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import sys
a = sys.argv[1]
print(a)

我想从命令行传入参数,传进去后,电脑下方的pycharm确实闪动了,应该是传参成功了,但是运行程序后却显示了:
Traceback (most recent call last):
  File "D:/Python/FluentPython/chap12/demon10.py", line 6, in <module>
    a = sys.argv[1]
IndexError: list index out of range

这是什么原因啊?哪位前辈帮忙解答一下啊,谢谢啊
最佳答案
2021-7-19 10:53:16
江湖散人 发表于 2021-7-19 10:44
运行后,显示的是空列表,为啥呢?

这些参数是在运行内存中的
而非保存在py文件中
也就是说都是在运行过程中临时存在
为了实现外部传参的过程
#demon10.py

import sys
a,b,c=sys.argv[1:4]

print(f'{a}是个{b}的{c}')
python demon10.py 今天 阳光明媚 日子
截图.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-19 10:31:04 | 显示全部楼层
报错是超出索引
import sys
a = sys.argv[0]
print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-19 10:35:56 | 显示全部楼层
逃兵 发表于 2021-7-19 10:31
报错是超出索引

我知道sys.argv[0]是当前文件路径。但是我要从命令行传入参数,让他显示出来sys.argv[1],但是结果却没有显示。为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 10:38:23 | 显示全部楼层
江湖散人 发表于 2021-7-19 10:35
我知道sys.argv[0]是当前文件路径。但是我要从命令行传入参数,让他显示出来sys.argv[1],但是结果却没有 ...

命令行前面需要输入python
python demon10.py 参数1 参数2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-19 10:44:52 | 显示全部楼层
逃兵 发表于 2021-7-19 10:38
命令行前面需要输入python
import sys
a = sys.argv[1:4]
print(a)

运行后,显示的是空列表,为啥呢?
截图2.PNG
截图3.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 10:53:16 | 显示全部楼层    本楼为最佳答案   
江湖散人 发表于 2021-7-19 10:44
运行后,显示的是空列表,为啥呢?

这些参数是在运行内存中的
而非保存在py文件中
也就是说都是在运行过程中临时存在
为了实现外部传参的过程
#demon10.py

import sys
a,b,c=sys.argv[1:4]

print(f'{a}是个{b}的{c}')
python demon10.py 今天 阳光明媚 日子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-19 11:05:41 | 显示全部楼层
逃兵 发表于 2021-7-19 10:53
这些参数是在运行内存中的
而非保存在py文件中
也就是说都是在运行过程中临时存在

你的意思是无论如何,py文件都不能打印出命令行中的参数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 11:08:57 | 显示全部楼层
江湖散人 发表于 2021-7-19 11:05
你的意思是无论如何,py文件都不能打印出命令行中的参数?

通过终端运行 py文件 并传参 这样是能打印出来的

独立运行py文件是不行的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 11:10:11 | 显示全部楼层
江湖散人 发表于 2021-7-19 10:44
运行后,显示的是空列表,为啥呢?

你这里蓝色的截图就是通过终端运行并打印的
下面的
['参数1','参数2']
就是Python的打印结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-19 11:22:05 | 显示全部楼层
逃兵 发表于 2021-7-19 11:10
你这里蓝色的截图就是通过终端运行并打印的
下面的
['参数1','参数2']

也就是说,通过命令行终端才能打印出sys.argv中的参数,
而运行python文件是没办法直接打印sys.argv的参数。
是这么个意思吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 11:23:02 | 显示全部楼层
江湖散人 发表于 2021-7-19 11:22
也就是说,通过命令行终端才能打印出sys.argv中的参数,
而运行python文件是没办法直接打印sys.argv的参 ...

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-19 11:26:18 | 显示全部楼层

好的 ,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 01:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表