作者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/m.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