gpt4 book ai didi

python - 是否可以使用 'sys.stdout' 命令将 python 输出重定向到 web?

转载 作者:行者123 更新时间:2023-12-01 06:08:51 27 4
gpt4 key购买 nike

是否可以使用重定向命令将 python 输出重定向到 web?
我知道我们可以像这样重定向输出

import sys
sys.stdout = open('file', 'w')
print 'test'

或者

在这样的终端
$ python foo.py > file

听说 'Django' and 'Flask'就像网络框架可以做到这一点。我想知道是否通过使用像 sys.stdout 这样的简单命令可以将输出重定向到网络吗?

最佳答案

一个很酷的技巧,你可以作为一个快速而肮脏的黑客从网络快速访问你的 python 脚本的输出是将它重定向到 nc-l (listen) 选项,像这样:

python foo.py | nc -l 8080

然后你可以去 localhost:8080在您的网络浏览器中查看输出。不过,它并不是真正的 Web 服务器——它只能工作一次!一旦有人加载页面,它将停止服务请求。

作为允许多次访问页面的稍微更高级的变体,将其包装在一个循环中,例如:
while true; do python foo.py | nc -l 8080; done

每次刷新页面时都会重新运行您的脚本!作为最后一层复杂性,您可以缓存结果,因此不需要每次都重新计算:
python foo.py > /tmp/myoutput; while true; do nc -l 8080 < /tmp/myoutput; done

显然,这些都不是真正的生产质量解决方案,您应该使用像 Flask 等合适的 Web 框架,但是如果您只想快速测试某些东西,它们可以解决问题。

关于python - 是否可以使用 'sys.stdout' 命令将 python 输出重定向到 web?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34564721/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com