我正在制作一个供个人使用的网络嗅探工具,但我无法在我的代码中找到语法错误,顺便说一下,这是Python 2.7.9。
这是代码;
def main():
global listen
global port
global command
global execute
global upload_destination
global target
if not len(sys.argv[1:]):
usage()
#read the commandline options
它表示错误在下面的3行中有任何想法?
try:
opts, args = getopt.getopt(sys.argv[1:],"hle:t:p:cu:", ¬ ["help","listen","execute","target","port","command","upload"])
except getopt.GetoptError as err:
print str(err)
usage()
我觉得Python 2和3之间存在混淆,但我不确定。
答案 0 :(得分:1)
¬ ["help","listen","execute","target","port","command","upload"])
“¬”这不是有效的Python语法。删除它应该可以解决问题。
此外,将来可能会发布输出中显示的实际错误。
答案 1 :(得分:0)
首先,这在程序中无效:¬
。这是Unicode,它基本上不能放在你所有的位置。从什么时候Python允许Unicode作为程序中的命令?它无效且位置错误。现在这样做会有效:
print "¬"
这是一个字符串,所以没有错,但是程序中的用法会导致语法错误,因为没有名为¬
的命令。此外,在try
语句中,您有一个8个空格的缩进。您只能在程序中使用4或2空格缩进。
编辑:好的,你可以在程序中使用8空格缩进,但是你需要在每一行缩进时使用8(或8的倍数)空格。由于您的缩进不一致,这也可能是您收到错误的原因。