从文件

时间:2019-03-23 23:15:51

标签: python

我想从文件中读取主机名,并在我的python脚本上使用它来进行REST API调用

server_list = []
with open('U4P.txt', 'r') as f:
    for server_ip in f:
        server_ip = server_ip.rstrip()
    server_list.append(server_ip)
    for server_ip in server_list:
     ru = U4VConn(server_name='server_ip', port=8443,verify=False, username='san', password='xxxxx')

结果不显示ip,而是显示变量名server_ip PyU4V.rest_requests-错误-URL https://server_ip:8443/univmax/restapi/84/sloprovisioning/symmetrix的GET请求

2 个答案:

答案 0 :(得分:1)

您不要在程序的任何地方使用server_ip的值。您几乎可以做到,但是您不小心通过调用'server_ip'使其成为字符串。

您可能想要以下内容。

server_list = []
with open('U4P.txt', 'r') as f:
    for server_ip in f:
        server_ip = server_ip.rstrip()
    server_list.append(server_ip)
    for server_ip in server_list:
        ru = U4VConn(server_name=server_ip,  # Note that there are no quotes
                     port=8443,
                     verify=False,
                     username='san',
                     password='xxxxx')

答案 1 :(得分:1)

存在缩进错误和不必要的引用。

server_list = []
with open('U4P.txt', 'r') as f:
    for server_ip in f:
        server_ip = server_ip.rstrip()
        server_list.append(server_ip) #here the indentation error
    for server_ip in server_list:
        ru = U4VConn(server_name=server_ip, port=8443,verify=False, username='san', password='xxxxx')
                            #^^^^^^^^^ here the unneded quotes

由于缩进错误,您仅将列表中的最后一个服务器保存在列表中。这就是为什么只获得一台服务器的原因。 由于引号,您使用字符串'server_ip'作为服务器名称,而不是服务器名称本身。 server_ip必须是变量。