簡體   English   中英

Python:從命令行輸入創建一個元組

[英]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:]) ,但有更好的方法來獲取命令行參數,以便您可以更恰當地使用它們。 嘗試optparsehttp//www.doughellmann.com/PyMOTW/optparse/

如果您使用的是Python 2.7,則應使用argparse

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM