草庐IT

Subprocess

全部标签

python - 子进程,从 STDOUT 读取时重复写入 STDIN (Windows)

我想从python调用外部进程。我正在调用的进程读取输入字符串并给出标记化结果,然后等待另一个输入(如果有帮助,二进制是MeCab标记器)。我需要通过调用此过程来标记数千行字符串。问题是Popen.communicate()工作但在给出STDOUT结果之前等待进程结束。我不想继续关闭和打开新的子流程数千次。(而且我不想发送整个文本,将来很容易超过数万行。)fromsubprocessimportPIPE,PopenwithPopen("mecab-Owakati".split(),stdin=PIPE,stdout=PIPE,stderr=PIPE,close_fds=False,un

python - process.communicate 和 getche() 失败

我正在尝试自动执行用C++编写的交互式命令行工具。启动时,二进制文件等待字母S、Q或P(状态、退出或暂停)。它使用非标准的msvcrt函数“getche”来获取击键(而不是例如gets()),而无需用户按回车键。我尝试以标准方式与进程通信(写入标准输入并使用process.communicate[]),但它没有获得输入。在尝试不同的事情几个小时后,我在VisualStudio中创建了两个小示例项目来重现问题并确保我是理智的(大概)。这是用于调用二进制文件的python脚本:importsubprocessimporttimecmd=["test-getch.exe"]process=s

windows - subprocess.Popen args 的编码问题

关于Python的另一个编码问题。如何在subprocess.Popen上将非ASCII字符作为参数传递打电话?我的问题不像StackOverflow上的大多数其他问题那样出现在标准输入/标准输出上,而是在Popen的args参数中传递这些字符。用于测试的Python脚本:importsubprocesscmd='C:\Python27\python.exeC:\path_to\script.py-n"Testçonãandê"'process=subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)ou

pip下载包时出现不适配导致无法下载安装包:error: subprocess-exited-with-error;error: metadata-generation-failed;

不用怀疑,首先排除将pip升级到最新这个没啥用的主意其次,这个问题出现一般是环境不匹配导致的最老实的办法莫过于弄清楚环境具体应该如何适配,然后再pip下载这个就不细说了,因人而异,可以尝试用不同源下载,也可以试试切换下python版本或者安装包的版本中庸之策略则是下载该包的wheel文件,再本地安装PS:这里有个问题,那就是,如果在pipinstall的不是官方包,而是别人上传到PYPI的包怎么办,按以上方法,也可以在清华源去搜索:https://pypi.tuna.tsinghua.edu.cn/simple/,{安装tar.gz:cd到解压后路径,./configure->make->ma

php - 从 python 调用 php 脚本(子进程)

我有一个在命令行中调用的php脚本:$phpimportTextFile.php--user"X"--title"name"notice_X.txt我想在python脚本中使用该文件。我试过了:forfileinos.listdir("."):subprocess.call(["php","-f","importTextFile.php"],"--user=X","--title="'%s'%name,file)我遇到了以下错误:File"./pageFromFile.py",line21,inmainsubprocess.call(["php","-f","importTextFil

php - 从 python 调用 php 函数

我的PHP代码:functionstart($height,$width){#dostuffreturn$image;}这是我的Python代码:importsubprocessdefphp(script_path):p=subprocess.Popen(['php',script_path],stdout=subprocess.PIPE)result=p.communicate()[0]returnresultpage_html="testentry"output=php("file.php")printpage_html+outputimageUrl=start(h,w)在Pyth

python3,subprocess.popen with shell grigent工作反向工作

我遇到一个问题:callsubprocess.Popen('adbshellls',shell=True)#hasNOconsoleoutputcallsubprocess.Popen('adbshellls',shell=False)#hasconsoleoutput我研究的结果是相反的。有人知道壳牌发生了什么?谢谢!!env:在64位Windows7上的64位Python3.6上。看答案注意:从docstring:“shell:如果为true,则该命令将通过外壳执行。”“shell”参数不是处理控制台输出。说命令(第一个参数)是“shell”/“bash”/etc的类型,类似于“#!/bi

java - 为什么 Java 创建的两个子进程表现不同?

我使用JavaRuntime.getRuntime().exec(command)创建一个子进程并打印它的pid如下:publicstaticvoidmain(String[]args){Processp2;try{p2=Runtime.getRuntime().exec(cmd);Fieldf2=p2.getClass().getDeclaredField("pid");f2.setAccessible(true);System.out.println(f2.get(p2));}catch(Exceptionie){System.out.println("Yikes,youareno

报错!error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully.

报错!error:subprocess-exited-with-errorpythonsetup.pybdist_wheeldidnotrunsuccessfully这类问题有通用的解决方法。问题背景使用pip安装包时出粗:pipinstall-rrequirements.txt报错原文:Buildingwheelsforcollectedpackages:fastcache,pycosatBuildingwheelforfastcache(setup.py)...errorerror:subprocess-exited-with-error×pythonsetup.pybdist_wheel

python - python脚本能否知道Android环境下C++main函数的返回值

有几种调用C++可执行程序的方法。例如,我们可以使用defrun_exe_return_code(run_cmd):process=subprocess.Popen(run_cmd,stdout=subprocess.PIPE,shell=True)(output,err)=process.communicate()exit_code=process.wait()printoutputprinterrprintexit_codereturnexit_code处理一个C++可执行程序:run_exe_return_code('abc')而abc是由以下C++代码创建的:intmain()