Erict调试python的sys.argv下标问题

    刚接触python没多久,不免会弄出些奇怪的问题。今天在eric环境下调试python时发现在设置sys.argv[1]的参数
时莫名奇妙调试不过去,非得从sys.argv[2]起始才能解析参数。
1.参数若设置如下2开始在eric debug的时候F2运行如下界面
hours,mins = sys.argv[2].split(":")

2.在hours,mins = sys.argv[2].split(":")设置为1在F2的时候

3.在Konsole中运行的时候 python ui.py 16:32;hours,mins = sys.argv[1].split(":")

4.若改为hours,mins = sys.argv[2].split(":"),运行出错
xtramus@ubuntu:/usr/local/share/gnuradio/N210/UI$ python ui.py 16:32
Traceback (most recent call last):
  File "ui.py", line 18, in <module>
    hours,mins = sys.argv[2].split(":")
IndexError: list index out of range
xtramus@ubuntu:/usr/local/share/gnuradio/N210/UI$

难道是eric的sys.argv的参数解析是从下标1开始的?

附代码
#!/usr/bin/env python
import sys
import time
from PyQt4.QtCore import (QTime, QTimer, Qt, SIGNAL)
from PyQt4.QtGui import (QApplication, QLabel)

app =QApplication(sys.argv)
print "sys.argv[0]%s\n"%sys.argv[0]
print "sys.argv[1]%s\n"%sys.argv[1]
print "sys.argv[2]%s\n"%sys.argv[2:]
try :
    due = QTime.currentTime()
    message = "Alert"
    if len(sys.argv) < 2:
        raise ValueError
    hours,mins = sys.argv[1].split(":")
    due = QTime(int(hours), int(mins))
    if not due.isValid():
        raise ValueError
    if len(sys.argv) > 2:
        message = " ".join(sys.argv[2:])
except ValueError:
    message = "Usage: alert.pyw HH:MM[optional message]"#24hr clock
while QTime.currentTime() < due:
    time.sleep(20)


label =QLabel("<font color=red size = 72><b>{0}</b></font>" .format(message))
label.setWindowFlags(Qt.SplashScreen)
label.show()
QTimer.singleShot(20000, app.quit)
app.exec_()

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(926) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

lubing5212012-08-30 16:45:44

#!/usr/bin/env python


import sys
import time
from PyQt4.QtCore import (QTime, QTimer, Qt, SIGNAL)
from PyQt4.QtGui import (QApplication, QLabel)

app =QApplication(sys.argv)
try :
    due = QTime.currentTime()
    message = "Alert"
    if len(sys.argv) < 2:
        raise ValueError
    hours,mins = sys.argv[1].split

评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值