Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本问题_Python - Fatal编程技术网

Python脚本问题

Python脚本问题,python,Python,这是我为我的伙伴公司客户支持编写的脚本。基本上,它所做的是使用脚本中的IP电话呼叫,它工作正常,但有问题。代码如下: import urllib, urllib2, sys num = sys.argv[1] print 'Calling' phones = [ 'http://phone1/index.htm', 'http://phone2/index.htm', 'https://phone3/index.htm', 'https://phone4/index.htm', 'https:/

这是我为我的伙伴公司客户支持编写的脚本。基本上,它所做的是使用脚本中的IP电话呼叫,它工作正常,但有问题。代码如下:

import urllib, urllib2, sys
num = sys.argv[1]
print 'Calling'
phones = [
'http://phone1/index.htm',
'http://phone2/index.htm',
'https://phone3/index.htm',
'https://phone4/index.htm',
'https://phone5/index.htm'
]
data = urllib.urlencode({"NUMBER":num, "DIAL":"Dial", "active_line":1})
while 1: 
    for phone in phones:
        try:
            urllib2.urlopen(phone,data) # make call
            urllib2.urlopen(phone+"?dialeddel=0") # clear logs
        except: pass

第一个问题是它只使用phone one打电话。。。现在,为了调试的目的,它被设置为一次又一次地呼叫,而我似乎只收到来自phone one的呼叫。。。第二个问题是脚本不会终止。ctrl+c不起作用。。。终止它的唯一方法(据我所知)是结束ssh会话。现在,我是python新手,所以这两个都可能是愚蠢的错误,希望有人能帮助我。谢谢

试着像这样替换Try-catch块

try:
    <code>
except Exception as exp:
    <code>
而使用下面的代码

except:
    pass
系统将捕获SystemExit、键盘中断和其他您可能不想捕获的内容


谢谢。

您的try块可能正在捕获Ctrl-C。请尝试修改它,以便只捕获预期的特定异常。有关Ctrl-C作为例外情况的更多信息,请参阅。

替换:

try:
    urllib2.urlopen(phone,data) # make call
    urllib2.urlopen(phone+"?dialeddel=0") # clear logs
except: pass
与:


因此,您可以查看回溯并找到错误

第一步是取出
,除了:pass
并查看它是否生成任何错误。尝试使用
ctrl+z
终止。如果它不起作用,您可以打开另一个ssh会话并执行
killall python
“第二个问题是脚本不会终止。ctrl+c不起作用…”您明确告诉它不要让您控制它
KeyboardInterrupt
——比如通过按ctrl-c键引发的中断——也是一个例外,并且
except:pass
表示如果出现任何异常,请忽略它。如果你按住control-C键足够长的时间,你会幸运地发现并最终打破它。下面是它得到的错误,文件“p.py”,第16行^SyntaxError:invalidsyntax@DSM我不知道终止脚本是一个例外。这似乎会产生相同的结果。当这样做时,它只会调用一次并输出调用。。。但它显示了这一点。。。
urllib2.urlopen(phone,data) # make call
urllib2.urlopen(phone+"?dialeddel=0") # clear logs