簡體   English   中英

子進程打開python文件並返回數據

[英]Subprocess to open python file and return data

我正在嘗試使用Python打開另一個文件。 該文件將啟動一個套接字,並創建用於偵聽其他連接的線程以及用於發送/接收數據的線程。 主線程不會返回。

但是,如果套接字設置失敗,我想向執行該子進程的其他python腳本返回錯誤代碼。

main.py

py3output = subprocess.check_output(['python3', 'py3.py'])
print('py3 said:' + str(py3output))

py3.py

def returnme():
    return 10

returnme()

當我運行它時,它打印:

py3 said:b''

我只是想弄清楚如何將返回值返回給主調用程序。

要將退出代碼 n返回給操作系統,您需要sys.exit(n) 但似乎您不想檢查退出代碼,而是要檢查標准輸出otput。 因此,您的程序可能需要重寫為:

def returnme():
    return 10

print(returnme())

您僅應使用以下代碼將字符串作為標准輸出返回:

sample.py


import sys

def returnme():
      sys.stdout.write(str(10))
      sys.stdout.flush()

returnme()

main.py


from subprocess import check_output

output = check_output(['python','sample.py'])
print('Sample.py says :' + output)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM