我从互联网上获得了以下密码生成器(Test.py),我认为在Canopy中运行起来很容易,但它似乎根本不起作用。
我一直都会收到无效的语法错误。我将代码发送给我的同事,并说她在Linux机器上使用简单的i-Python终端工作正常。
#!/usr/bin/env python
import random
import sys
import string
def main(argv):
if (len(sys.argv) != 5):
sys.exit('Usage: simple_pass.py <upper_case> <lower_case> <digit> <special_characters>')
password = ''
for i in range(len(argv)):
for j in range(int(argv[i])):
if i == 0:
password += string.uppercase[random.randint(0,len(string.uppercase)-1)]
elif i == 1:
password += string.lowercase[random.randint(0,len(string.lowercase)-1)]
elif i == 2:
password += string.digits[random.randint(0,len(string.digits)-1)]
elif i == 3:
password += string.punctuation[random.randint(0,len(string.punctuation)-1)]
print 'Your new password is: ' + ''.join(random.sample(password,len(password)))
if __name__ == "__main__":
main(sys.argv[1:])
我试过了:
$python Test.py 2 2 2 2
我也尝试使用整个路径名,但似乎没有任何作用!我很沮丧,因为它看起来很容易。任何帮助将不胜感激。
答案 0 :(得分:2)
我的猜测是你在ipython中运行这个命令
$ python Test.py 2 2 2 2
如果你在命令行中,那么你将如何运行脚本,并且它会返回错误:
In [1]: python Test.py 2 2 2 2
File "<ipython-input-3-5bade39d33f0>", line 1
python Test.py 2 2 2 2
^
SyntaxError: invalid syntax
如果你想在Canopy内部运行它(它是一个ipython shell,而不是一个终端窗口),运行这样的文件
In [1]: %run Test.py 2 2 2 2
Your new password is: NDt1q.+1