2012-07-26 54 views
3

我在使用Python進行optparse工作時遇到了很多麻煩。這是我第一次使用它,所以任何幫助將不勝感激。我通讀了所有的文檔,但即使有他們的例子,它也不適合我。我正在嘗試使用--clean來創建一個等於true的布爾變量。這是我有:Optparse Python Set布爾型

desc = "Use this script for fun!" 
parser = optparse.OptionParser(description=desc) 
parser.add_option('--clean', help='Run cleaner option', dest = 'runclean', default = False, action = 'store_true') 
(args, opts) = parser.parse_args() 

print opts.runclean 

我認爲這將設置runclean爲真,但是當我做:

print opts.runclean 

我得到:

AttributeError: 'list object has no attribute 'runclean' 

任何想法?

+0

**注意**:使用* optparse *因爲Python 2.7版氣餒。 optparse模塊已棄用,不會進一步開發;開發將繼續使用* argparse *模塊。有關更多信息,請參見[PEP 0389](http://www.python.org/dev/peps/pep-0389/)。 – shakaran 2013-04-03 23:51:21

回答

3

你有返回值逆轉:

(args, opts) = parser.parse_args() 

應該然後

(opts, args) = parser.parse_args() 

一切都會解決的。

+0

工作完美,謝謝!我無法相信我沒有注意到這一點 – user1463925 2012-07-26 15:06:40

0

正是在args.runclean

順便說一句,這是更好地使用argparse而非optparse