在python應用程序的框架內,我需要調用幾個主要使用optparse
的腳本。他們都有這種形式的切入點:python:在給定列表上使用optparse而不是系統命令行參數
if __name__ == '__main__':
mains(sys.argv)
我剛剛打電話給我的主要功能mains
想法,我的問題最初都來自那裏。然後,mains
開始總是這樣的,作爲一個例子:
def mains(argv):
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename", help="write result to FILE", metavar="FILE")
parser.add_option("-x", "--filter", dest="filterset", help="filters", metavar="FILTERS")
parser.add_option("-n", "--nameonly", dest="nameonly", help="nameonly", metavar="NAME_ONLY")
parser.add_option("-z", "--ignorezeros", dest="ignorezeros", help="ignorezeros", metavar="IGNORE_ZEROS")
parser.add_option("-y", "--xfilter", dest="xfilter", help="xfilter", metavar="X_FILTERS")
這裏的argv不使用optparser
,我沒有找到如何將它傳遞給它。從我的實際主要腳本中,我想我可以通過將參數作爲列表傳遞來調用這些mains
。 Obvioulsy,在當前狀態下,子腳本總是會選擇命令行......如何自己傳遞參數?
UPDATE:我的腳本試圖做出subcripts這些電話被稱爲這種方式從控制檯:
start.py -df
問題:從第一個下標optparse告訴我,「d」是不是有效選項,這表明它正在選擇控制檯參數。
但我不想sys.argv,我想我的列表被視爲參數,即不同的下標調用列表 – Jerome
我想大衛的答案是正確的。 –