如何在树莓派 3 树莓派上用 Python 启动进程?

时间:2021-03-21 10:57:52

标签: python

我想从 raspberry pi 3 raspbian 上的 Python 脚本启动一个进程。

在 Windows 上,以下代码可以工作:

import os
def openFile():
    try:
        os.startfile("/home/pi/Desktop")
    except:
        print("invalid path")

但在这里我返回无效路径。

你能告诉我如何解决这个问题以及如何打开应用程序吗?

我记得在 Windows 中: 路径中有 Notepad.exe,我可以打开它,但是对于 Linux 我应该怎么说?我的意思是 Linux 中的 .exe 是什么,我可以打开它吗?

2 个答案:

答案 0 :(得分:2)

os.startfileonly available for Windows。您应该改用 subprocess 库。试试我改编的 @user4815162342 的这个独立于平台的解决方案

import os, sys, subprocess

def open_file(filename):
    if sys.platform == "win32":
        os.startfile(filename)
    else:
        opener = "open" if sys.platform == "darwin" else "xdg-open"
        subprocess.run([opener, filename])

如果您的文件只是一个 bash 脚本,您可以将 subprocess.run 行替换为

subprocess.run(["bash", filename])

答案 1 :(得分:2)

据我所知,您尝试做的不是 open 而是 execute。因此,您可以通过搜索“Linux 上的python 执行文件”来找到更多相关信息。尽管如此,您正在尝试执行一个目录,而不是一个文件。所以,这是我要做的一个例子:

import subprocess


subprocess.call(['/bin/ls', '-l'])

这将调用位于 ls 文件夹中的可执行文件 /bin 并为其提供一个参数:-l。它将列出您当前目录中的文件(但是,请记住,您不应该为此使用 ls,这只是一个示例。如果您想列出目录中的文件,在蟒蛇)。

说到文件扩展名,Linux 上的可执行文件(类似于 Windows 的 .exe 文件)称为 ELF 文件,它没有规范的扩展名。事实上,与 Windows 相比,Linux 对扩展的关心要少得多。如果您想了解更多关于哪些文件可以在 Linux 上执行、执行权限等,请在互联网上搜索信息和/或在 https://superuser.com)

上提问