我知道还有其他几个问题问同样的问题,但是当我跑步时: 导入命令 来自pyDes import *
def encrypt(data, password,):
k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5,)
d = k.encrypt(data,)
return d
def decrypt(data, password,):
k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5,)
d = k.decrypt(data,)
return d
command1 = commands.getstatusoutput('ifconfig',)
encrypted = encrypt(command1, '12345678',)
我明白了:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in encrypt
File "build/bdist.macosx-10.6-universal/egg/pyDes.py", line 658, in encrypt
File "build/bdist.macosx-10.6-universal/egg/pyDes.py", line 195, in _padData
TypeError: can only concatenate tuple (not "str") to tuple
我再次知道这已被问过几次,但我似乎无法通过将逗号放在正确的位置来完成这项工作,就像其他问题一样。
答案 0 :(得分:1)
该函数期望将一元素元组作为参数。要在Python中明确指定单元素元组,需要使用括号:
tuple_containing_only_zero = (0,) # note the comma!
逗号是Python中元组的实际构造函数,因此您可以在不需要括号的情况下指定更长的元组:
>>> longer_tuple = 1, 2, 3, 4, 5
>>> longer_tuple
(1, 2, 3, 4, 5)
但是如果你正在调用一个函数:
f(x, y,) # is y a 1-tuple or a SyntaxError?
没有parens的单元组将是丑陋和模糊的。