![](/img/trans.png)
[英]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.