首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Popen.communicate()不能正常工作

Popen.communicate()不能正常工作
EN

Stack Overflow用户
提问于 2016-02-03 06:01:45
回答 1查看 346关注 0票数 1

我对Python很陌生。我正在使用Python 2.7,我试图使用python在shell中自动执行命令。我使用Popen运行命令,并使用Popen.communicate()向子进程传递一个参数。我试图执行的命令基本上是一个Java应用程序,当它执行时,它会找到多个主类。我需要输入要执行的main类的索引,为此我使用Popen.communicate()。在输出屏幕中,它显示输入了数字,但它抛出了java.lang.NumberFormatException: For input string: ""

为什么它将输入字符串作为空字符串?

下面是我使用的代码:

代码语言:javascript
复制
import sys
from subprocess import Popen, PIPE, STDOUT
cmd = ["sudo", "./sbt", "project java-examples", "run"]
proc = Popen(cmd, shell=False,stdout=PIPE, stdin=PIPE, stderr=STDOUT)
print proc.communicate('1')[0]
proc.stdin.close()

这是我得到的输出

将项目定义从/home/hduser/morey/ Kafka /project info设置为kafka(构建文件:/home/hduser/morey/kafka/)信息将当前项目设置为kafka-java-示例(构建文件:/home/hduser/morey/kafka/) 检测到多个主类,选择一个来运行: 1个TestProducer 2个kafka.examples.SimpleConsumerDemo 3个kafka.examples.KafkaConsumerProducerDemo 输入号码:1 无效编号: java.lang.NumberFormatException:用于输入字符串:"“java.lang.RuntimeException:未检测到主类。在scala.sys.package$.error(package.scala:27)跟踪堆栈跟踪抑制:运行最后的java-示例/编译:运行为完整的输出。error未检测到主类。错误总时间:2,2016年2月3日5:46:31

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-05 03:34:25

在输入中添加一个换行符:

代码语言:javascript
复制
print proc.communicate('1\n')[0]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35169585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档