[英]How autostart python script in RaspBerry Pi 3 (Raspbian (Debian))?
[英]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 open
但execute
。 因此,您可以通过搜索“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.