Python .write ограничение строки (или цикл) - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть код ниже, который проверяет, есть ли у меня ожидающие сообщения, записывает их все в файл и очищает список сообщений, если отправка отправляется, мне нужно изменить код так, чтобы, если список большой(более 100 MsgItems).

Я выписываю эти 100 элементов, отправляю их и удаляю из списка, если нет исключений.Если нет исключений, мы можем зацикливаться и отправлять следующие 100 сообщений.Если есть исключение (вероятная проблема с соединением), я могу пропустить и дождаться следующего вызова этого блока.

Я могу изменить if MsgItems > 0 на while, чтобы он продолжал зацикливаться, еслиЯ не могу отправить все сообщения за один раз, но я не видел метода «написать первые 100 строк» ​​или «очистить 100 строк» ​​эквивалента.

Есть что-нибудь подобное или мне просто нужно сделатьfor i in range(n) и пишите по одной строке за раз, а затем делайте то же самое с открытым, если не исключение.

if MsgItems > 0:
    # get time and make unique file name
    trackId = datetime.datetime.now().strftime("%y%m%d.%H%M%S")
    fileName = "%s%s" % (self.__MsgFilePrefix, trackId)
    try:
        with self.__MsgFileLock:
            self.__MsgFile.write(fileName)
        trackId = self.__MsgSender.sendToMsg(fileName)  #send messages to publisher
        self.__logger.debug("Sent with tracking ID: %s" % trackId)
        self.__MsgFile.clear() #clears message if no exception
        self.__logger.debug("Msg process succeeded")
    except Exception, e:
        self.__logger.error("Failed to send Msg file %s"
                            % fileName)
        self.__logger.debug(traceback.format_exc())
...