繁体   English   中英

Python提示时如何发送多个字符串作为脚本的输入

[英]Python how to send multiple strings as input to script when prompted

我的脚本在执行时会从提示中获取用户名和密码。 我能够发送单个字符串作为输入,但是无法根据条件发送多个字符串。 有人可以帮助我如何实现这一目标,或者如果有其他替代方法也可以吗? 我尝试了以下方法。

import sys
import StringIO
import getpass
class ProxyDetails:
    def __init__(self,option):
        self.option = option
        self.proxy_option = self.get_web_proxy_details()
        self.call_request()
        self.parse_test()

    def get_web_proxy_details(self):
        if self.option == "Default":
            self.proxy_username = getpass.getpass("Enter Username for Proxy : ")
            self.proxy_password = getpass.getpass("Enter Password for Proxy : ")
            print "self.proxy_username is {} ".format(self.proxy_username)
            print "self.proxy_password is {} ".format(self.proxy_password)
        else:
            print("proxy is none ")

    def call_request(self):
        # this method will do API call
        pass
    def parse_test(self):
        #this method will parse the json
        pass

f1 = sys.stdin
f = StringIO.StringIO('admin')
f = StringIO.StringIO('admin123')
sys.stdin = f
obj=ProxyDetails(option="Default")
sys.stdin = f1

其他方式

f = StringIO.StringIO('admin','\n','admin123')
sys.stdin=f

其他方式

f = StringIO.StringIO('admin','admin123')
sys.stdin=f
  1. 默认情况下,您使用的getpass不会从stdin中读取: https : //docs.python.org/2/library/getpass.html
  2. f的两个分配将相互覆盖。 sys.stdin = StringIO.StringIO('admin','\\n','admin123')更有可能完成这项工作。 您可以使用stdin.read()而不是getpass.getpass()进行尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM