2016-10-29 89 views
-4

我目前正在編寫一個程序,可以使用自定義文件類型。我的程序在文件打開時運行,但我不知道如何在啓動時從程序中調用特定的函數。Python文件關聯

+2

您的標題與您的實際問題不符。由於您的標題太模糊,請將其改爲反映您實際要求的內容。 –

+0

如果Windows上的Python在Linux和macOS上以類似Python的方式工作,則文件名將作爲命令行參數傳遞。您可以通過將'import sys'放在文件的頂部並使用'sys.argv'來訪問它們。第一個命令行參數是'sys.argv [1]',因爲'sys.argv [0]'是由程序名得到的。 – Samadi

+0

像:相同的文件,但不同的文件名不同的功能? – sbrm1

回答

0

像這樣的東西應該工作:

import sys 

... 

if __name__ == '__main__': 
    if len(sys.argv) > 1: 
     do_stuff_with_file(sys.argv[1]) 
    else: 
     do_stuff_without_file() 
-2

嘗試以下操作:

import sys 

... 

if '.custext' in sys.argv[1] : 
    task1() 
elif '.py' in sys.argv[1]: 
    task2() 
else: 
    task3() 

task1()會爲你的自定義擴展運行,task2()將默認.py擴展運行,並task3()將爲運行任何其他擴展。

+0

'sys.argv [0]'是程序名稱,而不是第一個參數的名稱 – Samadi

+0

嗯,我不明白這個問題,它需要一點澄清。沒有看到有關第一個參數的問題。 – sbrm1

+0

因此,我的編輯:) – Samadi