亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將數據從 python 腳本傳遞到另一個 python 腳本

將數據從 python 腳本傳遞到另一個 python 腳本

慕的地8271018 2021-09-02 20:12:43
我試圖使服務器和客戶端成為沒有套接字的類似程序,因為我無法使用互聯網來傳遞數據。我嘗試使用管道標準輸入,但我無法做到這一點......我有什么選擇?服務器:def main():try:    res = ""    while res != "exit":        res = input()        print("\n", res, "\n")except EOFError as e:    print(e)if __name__ == "__main__":    main()客戶:import subprocessimport osimport sysdef main():    p = subprocess.Popen(['python', 'b.py'], stdin=subprocess.PIPE)    res = ""    while res != "exit":        res = os.fsencode(input(">> "))        p.stdin.write(res)if __name__ == "__main__":    main()
查看完整描述

2 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

您的任務稱為進程間通信或 IPC。Python 提供了多種方法來實現這一點。

可能最好的方法是實際使用套接字。如果您將套接字綁定到本地主機地址 (127.0.0.1),則所有通信都通過您機器上的虛擬網絡適配器(環回適配器)進行。實際上沒有數據通過網絡傳遞。

另一種更依賴于平臺的方法是使用 unix 套接字(基本上是以類文件實體作為地址的套接字,權限決定誰可以讀取或寫入它)或使用命名管道(基本上是不存儲信息的虛擬文件,就像管道一樣穿過它。它們非常繁瑣)。

內存映射區域使用起來要復雜得多,并且通常需要一些其他機制來同步數據的狀態,但它們以最高的速度和隨機訪問功能獎勵您。您可能不應該將它用于您的服務器/客戶端程序......

PS:StackOverflow 會更好,如果您添加您的代碼并將“無法使其工作”擴展到您的操作的完整解釋。


查看完整回答
反對 回復 2021-09-02
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

你有很多選擇,套接字(最簡單的一個)不一定是數據通過互聯網,只要你有一些限制、管道或共享內存(困難的一個)


查看完整回答
反對 回復 2021-09-02
  • 2 回答
  • 0 關注
  • 303 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號