簡體   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