簡體   English   中英

如何在python中從原始輸入創建多個變量?

[英]How do you create multiple variables from raw input in python?

初學者在這里蟒蛇。 我一直在做一些在線教程,似乎無法找到這個問題的解決方案。 我想做的是:

hostname = raw_input("Type host name here: ")

然后用戶輸入盡可能多的主機名,輸入完成,然后輸入的內容就變成了在腳本中使用的變量。 因此,如果他們輸入HOST1,HOST2,HOST3,則腳本將為每個條目運行命令。 例:

def myhostsbecomevariables(*args):
      arg1, arg2, arg3, etc etc etc = args
      print "arg1: %r, arg2: %r, etc: %r, etc: %r" % (arg1, arg2, etc etc)

myhostsbecomevariables(HOST1, HOST2, HOST3)

如果用戶鍵入3個主機名,則myhostbecomesvariables使用3個參數。 如果他們輸入了5個主機名,那么它將有5個參數。

raw_input返回單個字符串。 如果您願意,可以在分隔符上拆分該字符串:

hosts = raw_input("enter hosts (separated by a comma):").split(',')

或拆分為2行:

host_string = raw_input("enter hosts (separated by a comma):")
hosts = hosts_string.split(',')

你可以使用參數解包將它傳遞給myhostbecomevariables

myhostbecomevariables(*hosts)

你的函數可以像這樣定義:

def myhostbecomevariables(*hosts):
    for host in hosts:
        print(host)

實際上沒有必要在這里將主機解壓縮成組成部分 - 因為(我假設)你將為每個主機執行相同的操作,只需在循環中執行。

它當然取決於您的用例,但使用shlex Python模塊可以很好地處理原始shell輸入,例如引用值。

import shlex
input = raw_input("Type host name here: ")
hostnames = shlex.split(input)

暫無
暫無

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

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