使用Python从网络位置读取文件

2024-04-26 04:47:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一些容错Python代码。我有两个远程服务器,文件位于共享文件夹中。我想至少在一台服务器上访问这些文件

我正在尝试在读取文件之前使用ping对每台服务器执行操作。但我应该在打开文件后做其他事情吗?在无法访问服务器的描述符上使用read()函数可以接收什么样的异常?如何正确处理所有这些问题

def get_working_server():
    logger = log_tools.get_logger(__name__)
    servers = ["server1", "server2"]
    while True:
        try:
            return try_server_each(servers[0])
        except errors.ServerIsDownError:
            try:
                return try_server_each(servers[1])
            except errors.ServerIsDownError:
                logger.error("Waiting for any to be up, sleeping for 2 seconds")
                time.sleep(2)


def try_server_each(server):
    logger = log_tools.get_logger(__name__)
    logger.info("Trying %(d_o_d)s on availability" % {"d_o_d": server})

    response = os.system("ping -n 1 " + server)

    if response == 0:
        logger.debug("It's up")
        return "\\\\" + server
    else:
        logger.warning("It's down")
        raise errors.ServerIsDownError

Tags: 文件服务器loggetreturnserverdeflogger