2015-12-04 92 views
3

我正在處理的當前項目讓我編程一個pi來通過libre辦公室自動運行PowerPoint文件。如何使用python在Raspberry Pi上打開PowerPoint?

我使用subprocess.Popen試圖能夠打開和關閉只顯示-PowerPoint文件。

所有比下面一行其他的代碼工作正常:

p = subprocess.Popen(['/usr/share/applications/libreoffice-impress.desktop', '/home/pi/Desktop/test.ppsx]) 

此行返回「Permission denied」錯誤。但是,可執行文件和.ppsx文件都具有爲所有人設置的所有權限。這包括通向它們的路徑中的所有文件夾。

我忘記了給權限一個特定的文件?還是另一個文件需要有正確的權限?還是有更好的命令,我應該用它來完全打開和關閉PowerPoint?

回答

1

只需直接使用命令,libreoffice --impress這裏面是什麼/usr/share/applications/libreoffice-impress.desktop exec'd,它會正常工作,你會不會有關於權限的任何煩惱:當你想

subprocess.check_call(['libreoffice', '--impress', '/home/pi/Desktop/test.ppsx']) 

check_call將是可取的調用進程,如果進程返回非零退出狀態,您將知道它會引發CalledProcessError

如果你喜歡使用一個.desktop我會建議建立一個在你的主目錄,你也可以走下來的須藤路線,但考慮您只需直接運行該命令,將沒有多大意義。

+1

非常感謝!太棒了。因爲我們需要的是能夠關閉的PowerPoint以及開它,我不能使用check_call,但我最終使用與subprocess.Popen(),這樣我可以存儲PID和使用PID關閉這些相同的參數幻燈片。 –

+0

不用擔心,不客氣。 –