在实时Python中打印到控制台

时间:2018-03-23 14:30:50

标签: python python-2.7 flush

我目前正在编写一个脚本,尝试绑定到特定conf.ini文件中的任意数量的服务器。我有一个for循环,它将尝试根据该文件中的信息为每个服务器进行绑定。

我希望能够实时输出正在发生的事情,即。 ('尝试绑定到服务器...'或'绑定成功')但是我的脚本在打印任何输出之前等待它连接到所有服务器。

我尝试过运行python -u script.py和sys.stdout.flush(),但似乎没有任何工作。

有谁知道如何解决这个问题?

for file in files:
    conf_file = ConfigParser.ConfigParser()
    conf_file.read(file)

    connection_section = 'LDAP'

    # Get Information from .ini Files
    try:
        hostname = conf_file.get(connection_section, 'hostname')
        port = conf_file.get(connection_section, 'port')
        username = conf_file.get(connection_section, 'username')
        password = conf_file.get(connection_section, 'password')
    except ConfigParser.NoOptionError:
        print("One or more options in {} is invalid!".format(file))

    print("Attempting to bind with {}:{}...".format(hostname, port))
    sys.stdout.flush()

    try:
        connection = ldap.open(hostname, int(port))
        connection.set_option(ldap.OPT_REFERRALS, 0)
        connection.simple_bind_s(username, password)
        print("Bind Success Attempting to query views...\n")
        sys.stdout.flush()

    except ldap.LDAPError as error:
        print("There was an issue while attempting to bind to {}:{}. 
[{}]\n".format(hostname, port, error[0]['desc']))

编辑:我添加了带时间戳的输出屏幕截图 enter image description here

0 个答案:

没有答案