python关于sys.argv的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python关于sys.argv的使用相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env python
import socket,sys
port = 70
host = sys.argv[1]
filename = sys.argv[2]
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
s.sendall(filename + "\r\n")
while 1:
buf = s.recv(2048)
if not len(but):
break
sys.stdout.write(buf)
以上程序中的sys.argv[1]和sys.argv[2]用来做什么啊,为什么不能通过测试:
IndexError: list index out of range
2.你这么直接使用sys.argv[1]和sys.argv[2],是很不好的做法。
3. 正常,且推荐的用法是,使用对应的库函数,帮你解析对应函数参数。
详细解释可参考我的:
【整理】Python中如何获得并处理命令行参数
里面有示例代码。
4.看了上面的帖子,还要你去看:
【整理】【多图详解】如何在Windows下开发Python:在cmd下运行Python脚本,如何使用Python Shell(command line模式和GUI模式),如何使用Python IDE
然后就懂了,对于你这里,执行脚本时需要输入参数的。
5。由于你这里用wing ide没有输入参数,所以才会出现
list index out of range
的错误的。
上面帖子都看完,就自然懂了。
(此处不给贴地址,请自己用google搜标题,就可以找到地址了) 参考技术A sys.argv是你接收的参数的列表 []
比如你这段代码名字叫做test.py
运行python test.py 192.168.0.1 test.txt
sys.argv[0] ----test.py
sys.argv[1] ----192.168.0.1
sys.argv[2] ----test.txt
你可以print试试
你要用wing 直接运行 就需要设置一下 在运行设置里面加上命令 参考技术B sys.argv保存了你加的系统参数
你的程序需要这样调用
c:/> python test.py 参数1 参数2 参数3追问
参数1 参数2 参数3是指的是什么啊。我的程序是写在wing IDE里面的,直接点运行报错。
追答所以你不能直接点运行,你需要加参数
比如这样:
python使用笔记:sys.argv[]的使用
sys.argv[]用于获取传入的参数
sys.argv[0]是py文件本身
比如例程
import sys
a=sys.argv[0]
b=sys.argv[1]
print(a)
print(b)
print(sys.argv[2])
执行结果:
以上是关于python关于sys.argv的使用的主要内容,如果未能解决你的问题,请参考以下文章