如何在一个 Python 程序中,获取运行另一个 py 文件后,返回输出到终端的内容

2022-10-22 18:59:07 +08:00
 shineonme

Traceback 那部分内容,试过了 os.popen 并不能做到

>>> import os
>>> os.system("python3 douyu.py")
输入斗鱼直播间号:
114514
Traceback (most recent call last):
  File "douyu.py", line 135, in <module>
    print(s.get_real_url())
  File "douyu.py", line 126, in get_real_url
    raise Exception('房间未开播')
Exception: 房间未开播
256
2195 次点击
所在节点    Python
6 条回复
Yourshell
2022-10-22 19:06:22 +08:00
改写成模块 import
或用 execfile

感觉是个 XY 问题
crab
2022-10-22 19:12:07 +08:00
pppwaw
2022-10-22 20:01:57 +08:00
traceback 在 stderr 里吧,你确定你 popen 读对了么
aijam
2022-10-22 20:05:39 +08:00
直接 import douyu 就完了
shineonme
2022-10-22 20:17:18 +08:00
@Yourshell
@aijam 确实,直接 import 下就可以了,怎么之前脑子就没转过来呢
zhanglintc
2022-10-25 20:34:51 +08:00
用`os.system()`去执行命令并试图获得输出是个常见错误。

你得用诸如`subprocess.check_output()`的方式来获得返回(没办法就是这么繁琐)。
当然你这里本来就是 py 文件,的确 import 运行就可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/888985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX