为了账号安全,请及时绑定邮箱和手机立即绑定

将数据从 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 关注
  • 270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号