Python пишет строки непоследовательно в файл - PullRequest
0 голосов
/ 11 мая 2019

Я пишу код Python, который будет писать входные файлы для другой программы.У меня есть набор тестов, и я обнаружил, что тесты иногда не выполняются, потому что в записываемых строках могут отсутствовать символы или использовать «e» вместо «E» для обозначения числа с плавающей запятой.Но эти неудачи кажутся случайными.

Я понятия не имею, как решить эту проблему, я погуглил и, похоже, не могу найти никаких результатов, соответствующих моей проблеме.

Вот результаты двух запусков модульного теста без изменений кода между ними:

..................................................................................
----------------------------------------------------------------------
Ran 82 tests in 0.019s

OK

Затем сбои в виде вывода различий (пробелы заменены на `):

<  Begin feti equation solver feti
<  End feti equation solver feti
---
>   Begin feti equation_solver feti
>   End feti equation_solver feti

и

<   tolerance = 1E-06
---
>   tolerance = 1e-06

Вот метод записи, который записывает эти отрывки:

  def write(self,f,indent):
    # if this term  is not active do not write anything
    if not self._active:
      return()
    line = "  " * indent
    for idx,item in enumerate(self._my_values):
      if item is None:
        continue
      if idx != 0:
        line+=" "
      if self._use_symbol and idx == self._symbol_location:
        line += self._symbol+" "
      line += str(item)
    line += "\n"
    f.write(line)

_my_values ​​- это список строк, целых чисел или чисел с плавающей запятой._symbol - это строка, часто "=".

Мне бы хотелось, чтобы тесты работали согласованно.В то время как «е» против «Е» не имеет большого значения, изменение в подчеркиваниях действительно есть.

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...