首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过python脚本在命令行中执行sbt并输出到文件

通过python脚本在命令行中执行sbt并输出到文件
EN

Stack Overflow用户
提问于 2016-08-23 20:37:46
回答 1查看 797关注 0票数 2

我在目录/Desktop/jsons中有一组json文件,我有一个Scala脚本,它接收一个json并输出内容。我可以在终端中手动运行它,方法是将cding放到Scala脚本(/Me/dev/scalastuff)的目录中,然后运行

sbt --error "run /Desktop/jsons/jsonExample.json"

输出我在终端里想要的东西。

我想要编写一个Python脚本,它可以自动完成这一任务,另外,我还想用Scala脚本输出的“素材”输出一个json文件。

我现在的问题是使用子处理。当我试着跑

BASEDIR = '/Me/dev/scalastuff' p = subprocess.Popen(['sbt --error "run /Desktop/jsons/jsonExample.json"'], cwd = BASEDIR, stdout = subprocess.PIPE) out = p.stdout.read() print out

我得到了OSError: [Errno 2] No such file or directory

我完全搞不懂为什么会发生这种事。我是新来的子过程,所以要对我轻一点!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-23 20:44:22

python中的popen接受一个shell参数列表。你只经过一个!

因此,它试图执行一个名为“完全'sbt --error "run /Me/Desktop/jsons/jsonExample.json"'”的文件。

很明显,这不管用。

如果您使用popen;只传递一个简单的数组--您不必关心转义:

代码语言:javascript
复制
subprocess.popen(['sbt', '--error', 'run /Me/Desktop/...'], cwd = BASEDIR, stdout = subprocess.PIPE)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39110249

复制
相关文章

相似问题

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