2016-07-22 31 views
-4

當我打開一個HTML文件時,例如,我已將它設置爲在Chrome中打開。現在,如果我將給定的python腳本設置爲打開給定文件類型的東西,那麼如何在腳本中訪問此文件?它從哪裏來?當操作系統打開腳本來處理打開該文件時,如何從python訪問文件?

+0

如果我們調用正在打開的文件'B'和腳本做開幕被稱爲'A',你問的是'A'如何訪問'B',或者'B'如何訪問'A'? –

+0

'A'如何訪問'B'。 (反過來是否有意義?試圖找出什麼時候適用)......但是,你明白爲什麼這是谷歌稍微困難。 – Aerovistae

+0

訪問該文件時,您不能創建「python **腳本**是打開給定文件類型的東西」,它只會返回錯誤。也許可能將腳本轉換爲exe文件可能會有效 –

回答

1

當打開一個文件時,操作系統啓動負責首戰程序並將該文件(S)被開闢爲command line arguments

path/to/opener_executable path/to/file1_to_be_opened path/to/file2_to_be_opened ... 

您可以訪問通過sys.argv命令行參數在你的Python腳本。小例子:

import sys 

print("I'm supposed to open the following file(s):") 
print('\n'.join(sys.argv[1:])) 
+0

因此,K Dawg的上述評論是不準確的,腳本可以處理這種情況,而不需要執行任何操作。 – Aerovistae

+0

@Aerovistae可以,您可以通過命令'python.exe my_opener_script.py'來設置某種文件類型,該命令將啓動您的腳本並將參數傳遞給它。或者最壞的情況,你可以製作一個'.bat'腳本來啓動你的python腳本並傳遞參數。 –

+0

@Rawing你必須製作一個蝙蝠腳本。因此,我的第一個陳述是正確的,你不能指定一個python *腳本*作爲Windows中的文件開啓器... –

0

爲了證明Rawing的點,在Linux上,你的‘開放使用其他應用程序’,然後選擇你的Python腳本,你做的可執行文件。
sys.argv提供腳本的名稱作爲參數0,然後提供任何其他參數的列表。

myopener.py

#!/usr/bin/env python 
import sys, os 
x=os.open('/home/rolf/myopener.output',os.O_RDWR|os.O_CREAT) 
xx = os.fdopen(x,'w+') 
y=str(sys.argv) 
xx.write(y) 
xx.close() 

打開文件abc.ddd與myopener.py創建文件myopener.output內容:

['/home/rolf/myopener.py', '/home/rolf/abc.ddd'] 
相關問題