繁体   English   中英

如何在树莓派 3 raspbian 上启动 Python 中的进程?

[英]How can I launch a process in Python on a raspberry pi 3 raspbian?

我想从树莓派 3 raspbian 上的 Python 脚本启动一个进程。

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

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

但是在这里我得到了无效的路径。

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

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

os.startfile 仅适用于 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])

据我了解,您尝试做的事情称为 not openexecute 因此,您可以通过搜索“Linux 上的 python 执行文件”找到更多信息。 尽管如此,您仍试图执行一个目录,而不是一个文件。 所以,这是我要做的一个例子:

import subprocess


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

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

说到文件扩展名,Linux上的可执行文件(类似于Windows'.exe文件)被称为ELF文件,它没有规范的扩展名。 事实上,Linux 通常比 Windows 关心的扩展少得多。 如果您想了解更多关于 Linux 上可以执行哪些其他文件,执行权限等,请在 Internet 上搜索信息和/或在https://superuser.Z4D236D9A2D102C50Z 6AD1C50DA4 提问

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM