Python子进程 - 来自C ++可执行文件的用户输入

时间:2016-05-01 17:22:19

标签: python c++ qt subprocess qstring

我有一个C ++代码,我编译成一个运行得很好的Windows可执行文件。当我运行它时,会弹出一个控制台,并要求用户输入一个字符串(C ++脚本实际上需要一个QString)。我的C ++脚本中等待用户输入的一行是:

cout << "OTHER STUFF TO PRINT OUT" << endl;
cin >> input;  //input is a QString here
cout << input.toStdString() << flush;

我试图用Python子进程运行这个可执行文件而我无法接受输入字符串。这是我的python脚本的样子:

proc = subprocess.Popen(["file.exe"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=FULL_PATH)

for line in proc.stdout: print line

proc.stdin.write("My string")
proc.stdin.flush()
print proc.stdout.readline()

Python脚本正确运行(即输​​出正确的东西),直到它命中write语句并挂起。我已经尝试了上述写语句的许多不同变体(例如,沟通,追加&#34; \ n&#34;到Mystring等)无济于事,所以我伸手去寻求帮助。我已经审查了这个网站也没有运气。

0 个答案:

没有答案