我正在尝试读取Node.js启动的Python脚本的输出。但是,只有在过程完成后,我才能访问数据。
var proc, args;
args = [
'./bin/build_map.py',
'--min_lon',
opts.sw.lng,
'--max_lon',
opts.ne.lng,
'--min_lat',
opts.sw.lat,
'--max_lat',
opts.ne.lat,
'--city',
opts.city
];
proc = spawn('python', args);
proc.stdout.on('data', function (buf) {
console.log(buf.toString());
socket.emit('map-creation-response', buf.toString());
});
Run Code Online (Sandbox Code Playgroud)
如果使用{stdio:'inherit'}启动该过程,则可以直接在控制台中看到输出。但是做类似process.stdout.on('data',...)的事情是行不通的。
如何确保子进程到达时可以读取子进程的输出并将其定向到其他地方?
是否可以让manage.py syncdb命令仅将同步自定义权限同步到auth_permission
表中?我不想默认安装的应用程序模型3组的权限,即foo.add_bar
,foo.change_bar
,foo.delete_bar
.我在我的模型类中指定了自定义权限,例如django文档建议:
class Meta:
permissions = (
("admin", "Can create/edit/delete projects"),
("user", "Can view projects"),
)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个存储在'text/plain'文件中的MIME消息,如下所示:
MIME消息应该是多部分消息.
我如何在Python中解析这个?我已经尝试过email.message_from_string(),但它仍然编码为'text/plain',因此我无法使用电子邮件库来解析它.
我的代码看起来像这样:
f = open(settings.MEDIA_ROOT + '/raw.txt', 'r')
msg = email.message_from_string(f.read())
i = 1
for part in msg.walk():
if part.get_content_maintype() == 'multipart':
continue
ext = mimetypes.guess_extension(part.get_content_type())
filename = 'part-%03d%s' % (i, ext)
fp = open(settings.MEDIA_ROOT + '/' + filename, 'wb')
fp.write(part.get_payload(decode=True))
fp.close()
i += 1
Run Code Online (Sandbox Code Playgroud)
我会非常感谢任何帮助!