问题标签 [communicate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2404 浏览

python - Python、mpg123 和子进程未正确使用 stdin.write 或通信

好的,所以我的google-fu真的很烂,我找不到答案,希望你们能帮助我^_^

好的,所以我认为一个简单的脚本似乎无法正确地与其子进程通信,我正在逐行运行。我也在用mpg123播放器,这是一个Linux系统(嗯,树莓派)

我可以在它上面运行 stdout.read() 就好了,但是使用通信输入只会让它挂起,而 p.stdin.write('q') 似乎什么也没做。这是与 python 相关的,尽管我觉得我也没有在 mpg123 文档中找到正确的位置。请善待,因为我对此非常陌生^_^

0 投票
3 回答
175 浏览

python - 从另一个 python 脚本获取字典列表?

我有一个程序,我需要从一个 py 脚本调用另一个 py 脚本并从中获取一个字典列表。我已经想出了如何调用另一个 py 脚本并从 stdout 获取列表作为字符串,但是如何在第二个脚本中使用它?这是第二个脚本输出的内容。

我在第一个脚本中需要这个列表。我发现的一种解决方案是使用exec,但这会带来一些安全问题,因为我想避免它。

0 投票
2 回答
3509 浏览

python - python 2.7 - 与 mpg123 的子进程控制交互

几周前我在这里问了一个与此相关的问题: Python, mpg123 and subprocess not proper using stdin.write or communication

感谢那里的帮助,我能够做我当时需要的事情。(没有调用 q,但终止了子进程以停止它)。## Heading ## 现在虽然我似乎又有点乱了。

就像以前一样,我需要这个能够退出 mpg123,就像它的标准控件一样(比如按“q”退出,或“-”降低音量,“+”提高音量等),现在我使用上面的代码,理论上应该可以工作,并且可以与类似的程序一起工作。有谁知道我可以使用子进程使用 mpg123 内置的控件(通过使用“mpg123 -C 不管.mp3”访问的控件)的一种方式?终止已经不够了,因为我需要控件^_^

编辑:非常感谢 abarnert 的惊人答案 =) 好的,所以新代码只是 abarnert 答案的略微修改版本,但是 mpg123 似乎不接受命令

0 投票
1 回答
1171 浏览

python - Popen 通信不起作用

我有一个在过去 3 个月内一直正常工作的脚本。服务器上周一宕机了,从那以后我的脚本就停止了工作。脚本挂在coords = p.communicate()[0].split().

这是脚本的一部分:

当我在另一台服务器上运行脚本时,一切正常。我可以用别的东西代替p.communicate()[0].split()吗?

0 投票
0 回答
346 浏览

python - 如何使用python在mac osx上打开文件

在 python 代码中,我尝试使用子进程打开文件

它在 Windows 上运行良好,因为它正在等待文件关闭以执行下一条指令。但是,它甚至没有在 mac osx 10.8.2 上打开文件。然后,我尝试了

它正在打开文件,但问题是,它在文本编辑器中打开文件,所以我必须关闭打开的文件并需要从停靠栏中退出文本编辑器,然后执行下一条指令。我想要的是用默认编辑器打开一个文件,它应该等到打开的文件关闭。一旦打开的文件关闭,它应该执行下一条指令,文本编辑器也应该自动从停靠栏退出。

0 投票
2 回答
556 浏览

c - 与 Verilog 仿真进行实时通信

我希望与verilog仿真实时交流,就像我在某个地方输入一个数字,verilog仿真可以读取并显示它一样。所以我找到了一种使用读/写文件进行通信的方法。首先,我编写 ac 程序来扫描我在终端中键入的内容并实时更改特定文件中的数字。然后我想如果verilog保留f​​scanf文件,它可以通信。我在下面写了verilog代码,它可以工作但不是很好。如果我每个输入 1 ~ 9 一秒钟,它会丢失大约六个数字。我希望我输入的所有数字都能被verilog读取。我使用 ncverilog 编译。谁能告诉我如何修复我的verilog,或者有另一种与verilog通信的方式。非常感谢。

0 投票
1 回答
227 浏览

python - 如何获取命令输出而不是 python 中的子进程?

如果我喜欢:

我执行了命令的输出:

但是如果调用x.communicate()例如我得到:

例如,如何将该消息保存在变量中?

0 投票
1 回答
2025 浏览

python - subprocess.Popen("ssh host@remote cmd") 失败

我是 python 子进程的新手。当我想使用 python subprocess.Popen.communicate 完成与 shell cmd“net ads join -U administrator”的交互密码时,它的输出没有重定向到 PIPE,而是在 stdout 中。我的代码在:

当我运行测试时,通信不起作用,输出仍在标准输出中。

当我将cmd更改为“ssh root@ip ls /”时,我也遇到了问题。

我试过pdb,但问题似乎不在这里。任何建议来处理这个问题?谢谢你

0 投票
0 回答
303 浏览

winapi - 无论文件打开器如何,如何每次都在新进程中打开文件

我正在使用 windows 7 64 位 python 2.7 我正在打开文件,并监视文件更改,然后等待打开的文件关闭。这适用于简单的记事本文件打开器。由于记事本在新的进程 ID 中打开每个文件,而记事本++ 在单个记事本++ 进程 ID 中打开不同的文件。

所以上面的代码,当我关闭记事本++(这将关闭所有不需要的不同打开的文件)而不是只关闭打开的文件类型时,它可以工作。 当我用写字板/记事本打开文件时,它的每个进程都是用一个文件创建的。而使用 notepad++,只有一个 notepad++ 进程承载所有不同的文件类型。那么,如何在每次打开新文件时为不同类型的文件打开器(如 notepad++、msoffice、openoffice)调用新进程 ID在上述情况下ss.communicate()不是阻塞调用

0 投票
4 回答
17140 浏览

python - 使用 Python 运行可执行文件并填写用户输入

我正在尝试使用 Python 来自动化一个涉及调用 Fortran 可执行文件并提交一些用户输入的过程。我花了几个小时阅读类似的问题并尝试不同的事情,但没有任何运气。这是一个最小的例子来展示我最后尝试的内容

但是,当我尝试运行它时,出现以下错误:

非常感谢任何建议或指示。

编辑:

当我调用 Fortran 可执行文件时,它要求用户输入如下:

不知何故,我需要运行可执行文件,等到它要求用户输入然后提供该输入。