2016-06-24 57 views
-1

當在文件管理器中雙擊文件時,它會使用與文件類型關聯的應用程序自動打開。打開文件的代碼,如雙擊文件

我該怎麼做代碼。我對任何編程語言都開放。我對Python和C有一點經驗。

我的目標操作系統是Ubuntu Linux和OSX。不過,理想情況下,我想找到一個適用於Windows,OSX和Ubuntu linux的解決方案。

+0

不幸的是這不是一個簡單的問題。例如,你用什麼程序打開'.pdf'?在那裏有數百甚至上千個'.pdf'閱讀器,並且可以在你的計算機上打開多種方式。這樣做的一種可行方法是對打開某些文件的應用程序進行硬編碼,但即使這樣做也可能導致列表長達數百個條目 –

+0

我認爲您需要兩件事:1.檢查文件的MIME類型(更多info [here](http://stackoverflow.com/questions/43580/how-to-find-the-mime-type-of-a-file-in-python)和2.知道你將使用哪個應用程序打開文件(我認爲這可能是可能的,但我不知道如何) – Barranka

+4

請參閱[這個問題](http://stackoverflow.com/questions/434597/open-document-with-default-application-in -python) – solarc

回答

0

對於OS X的Mac OS X

在你的終端,你可以使用命令open用默認的應用程序中打開文件。在Python中,您可以使用os模塊來模擬shell命令。所以,你應該試試這個代碼:

os.system("open foo.doc") 

或者,如果你想強制一個窗口打開的時候已經有該窗口的一個實例:

os.system("open -n foo.doc") 

os.system("command")只是在命令行中執行命令。並且open用其默認應用程序打開文件。

對於Linux的

使用XDG-開放。有關示例,請參閱this文章。

+0

請給我一個downvote的人請解釋爲什麼。 –

+0

我認爲這可能是因爲你的案例中的「開放」不是做作者想做的事情。我認爲作者想要啓動一個應用程序,但是在閱讀'open'手冊頁之後,聽起來並不像這樣 –

+1

在我的Windows上沒有'open'命令,只是'os.system(file)'找到該文件的默認程序並打開它。所以這個答案對我的Windows來說是正確的:-)。 OP除外* nix ... – handle