作者starlin2 (找房子找房子找房子~)
看板Python
标题[问题] 如何在robot的Start Process秀输出讯息?
时间Fri Sep 15 17:29:26 2023
如题,因为我有一个程式是需要在背景执行,有点server的程式,
所以会像这样执行,然後如果手动执行的话会在cmd line秀出一些讯息的~
${process} Start Process server.exe
手动执行大概像这样,
C:\server.exe
server is running
然後我在robot想看他输出的讯息,
Log To Console ${process.stdout}
Log To Console ${process}
但都一直看不到,输出的讯息是长这样:
<_io.BufferedReader name=5>
<subprocess.Popen object at 0x000001D0CB1D2160>
也有试着加过shell=true了,结果一样,
另外,我也试了改用Run Process,结果变只有输出我执行的档案
C:\server.exe
.<result object with rc 0>
不知道这边有没有熟悉robot的大神可以帮忙解答一下的?
感谢万分。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.229.217.117 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1694770169.A.870.html
1F:→ zerof: Robot 完整的 code 呢?你 process 怎麽执行的 09/15 20:35
2F:→ wuyiulin: 什麽Robot,你用哪方的API? 09/16 07:47
4F:→ starlin2: Run Process是robot预设的指令。 09/17 22:37
5F:推 lycantrope: 可能要把stdout=sys.stdout 09/18 11:54
6F:→ zerof: 我问的是你 Start Process 带的参数。 09/19 12:52
7F:→ zerof: 如果你实际上是跟第三行一样的写法,"subporcess stdout" 09/19 12:53
8F:→ zerof: 自己研究一下。 (btw, "Log to console" == print) 09/19 12:53
9F:推 lycantrope: Robot就是用subprocess.Popen,才叫你串stdout 09/19 15:11
10F:→ starlin2: 我在Start Process没有带参数,有建议的参数吗? 09/20 08:51
11F:→ lycantrope: 看一下process.stderr,server.exe不一定输出在stdout 09/20 10:30
12F:→ Hsins: process.stdout.read() 09/22 14:34
13F:→ Hsins: 东西都还在 io streaming 里, 这东西又不是字串当然不给你 09/22 14:36
14F:→ Hsins: log 啊。 09/22 14:36
15F:→ lycantrope: 查robot doc,process.stdout就stdout才会猜server.exe 09/22 15:39
16F:→ lycantrope: 根本不是print在stdout 09/22 15:39
17F:推 s860134: buffer 10/11 09:42
18F:→ s860134: 改成 stdout.read() 10/11 09:43
19F:→ s860134: 12楼第一句话就可以解了 10/11 09:45