当前位置: 首页 > 面试题库 >

如何从Python脚本调用可执行文件?

云洋
2023-03-14
问题内容

我需要从我的Python脚本执行该脚本。

可能吗?该脚本会生成一些输出,并写入一些文件。如何访问这些文件?我尝试了子流程调用功能,但没有成功。

fx@fx-ubuntu:~/Documents/projects/foo$ bin/bar -c somefile.xml -d text.txt -r aString -f anotherString >output

应用程序“ bar”还引用了一些库,除了输出外,它还创建了文件“ bar.xml”。我如何访问这些文件?只是通过使用open()?

谢谢,

编辑:

Python运行时的错误仅是这一行。

$ python foo.py
bin/bar: bin/bar: cannot execute binary file

问题答案:

要执行外部程序,请执行以下操作:

import subprocess
args = ("bin/bar", "-c", "somefile.xml", "-d", "text.txt", "-r", "aString", "-f", "anotherString")
#Or just:
#args = "bin/bar -c somefile.xml -d text.txt -r aString -f anotherString".split()
popen = subprocess.Popen(args, stdout=subprocess.PIPE)
popen.wait()
output = popen.stdout.read()
print output

是的,假设您的bin/bar程序将其他一些分类文件写入磁盘,则可以使用正常打开它们open("path/to/output/file.txt")。请注意,如果不需要,您不需要依赖子外壳将输出重定向到磁盘上名为“输出”的文件。我在这里展示如何直接将输出读取到您的python程序中而无需在其间插入磁盘。



 类似资料:
  • 问题内容: 我能运行Linux命令状或从Java没有问题,但不能得到执行的Python脚本。 这是我的代码: 什么都没有发生。它到达了SEND,但之后就停止了… 我正在尝试执行需要root权限的脚本,因为它使用串行端口。另外,我还必须传递带有一些参数的字符串(数据包)。 问题答案: 您不能像在示例中那样在内部使用PIPE 。PIPE是shell的一部分。 你可以做 将命令放入shell脚本并使用或

  • 问题内容: 我有一个Maven项目,其中我正在尝试执行脚本(用R编写)。我也将此脚本文件放在源代码目录中。我发现此脚本根本没有执行。但是,当我将此脚本移到jar文件之外时,它会执行!谁能告诉我原因,并给我一些解决方案以将脚本放入jar中,同时确保其执行? 非常感谢 ! 问题答案: 我将执行以下操作: 使用ClassLoader.getResourceAsStream()获取文件的InputStre

  • 问题内容: 我需要从Django Shell执行Python脚本。我试过了: 但这没有用。只是在等我写东西。 问题答案: 该<<部分有误,请<改用: 你也可以这样做: 对于python3,你需要使用

  • 我需要从Django shell执行一个Python脚本。我试过: 但是没有成功。它只是在等我写些什么。

  • 问题内容: 我有一些用PHP编写的代码,但是我还开发了一个用Python编写的脚本。是否可以从PHP代码调用此Python脚本? 如果是,如何从PHP将参数传递给Python脚本? 我试图找到一个没有成功的答案。 有人可以给我一个提示吗? 问题答案: 您使用系统功能:http : //php.net/manual/en/function.system.php 像这样:

  • 问题内容: 我尝试执行以下操作(我的jar和python文件都在同一目录中): 和 无论是工作过。因此,我当时以为应该改用Jython,但我认为必须有一种更简单的方法来通过python执行jar文件。 你知道我可能做错了什么吗?或者,是否还有其他网站可以进一步研究我的问题? 问题答案: 我将以这种方式使用子流程: 但是,如果你有一个正确配置的,你应该能够直接运行jar,因为你写的。 那么,这正是您