[英]Python: Create a tuple from a command line input
我有一個程序,它提供如下命令行輸入:
python2.6 prog.py -p a1 b1 c1
現在,我們可以有任意數量的輸入參數,即-p a1和-p a1 c1 b1 e2都是可能的。
我想基於變量輸入參數創建一個元組。 任何有關如何做到這一點的建議都會非常有幫助! 一個固定長度的元組很容易,但我不知道如何實現一個可變長度的元組。
謝謝。
元組的長度是固定的。 創建元組后,您無法修改它。
命令行參數存儲在列表中。
import sys
t = tuple(sys.argv[1:]) # since sys.argv[0] is the name of the script
這應該這樣做:
import sys
t = tuple(sys.argv)
既然您可能不想要腳本名稱,那么您可能希望這樣做:
if len(sys.argv) > 1:
t = tuple(sys.argv[1:])
迭代通過sys.argv
直到你到達另一個標志。
您可以使用tuple()構造函數將列表轉換為元組:
>>> tuple([1, 2, 3, 4])
(1, 2, 3, 4)
在sys.argv =)或它的一部分上使用它。 干杯!
你為什么不回顧一下* args和** kwargs討論?
import sys
t1 = tuple(sys.argv)
t2 = tuple(sys.argv[1:])
print t1
print t2
您可以使用getopt從命令行獲取args。 它返回一個args列表,然后您可以使用tuple()將其轉換為元組
import getopt
import sys
def main(argv):
opts, args = getopt.getopt(argv, 'p')
return tuple(args)
if __name__=='__main__':
main(sys.argv[1:])
請參閱http://www.faqs.org/docs/diveintopython/kgp_commandline.html
確切問題的正確答案是tuple(sys.argv[1:])
,但有更好的方法來獲取命令行參數,以便您可以更恰當地使用它們。 嘗試optparse
: http : //www.doughellmann.com/PyMOTW/optparse/
如果您使用的是Python 2.7,則應使用argparse
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.