import pickle
import os
class Inject(object):
def __reduce__(self):
return (os.system, ('ls',))
serialize = pickle.dumps(Inject())
command_res = pickle.loads(serialize)
print(type(command_res))
问题是pickle.loads
返回一个tuple
,元组的第二个元素是int
,所以command_res
将分配给一个int
,但是我想要以获得[0]
的第一个索引pickle.loads
,因此command_res
将被分配给str
,这是ls
的结果。
我该怎么做?
答案 0 :(得分:1)
问题是os.system
不会返回命令ls
的输出,如果您使用库subprocess执行命令,则会得到输出,并且可以获得{{ 1}}而不是str
,因此您的代码应为:
int