write () создание частично читаемых / поврежденных файлов - PullRequest
0 голосов
/ 28 октября 2011

У меня есть длинная строка (последовательность ДНК с \ n через равные промежутки времени), которую я пытаюсь записать в файл.

При написании кода, приведенного ниже, у меня есть файл, который getline не может полностью открыть в программе на C ++, то есть istream, кажется, считает, что файл содержит всего около дюжины строк.Аналогично, если я делаю cat или больше для файла, я вижу только около дюжины строк файла. Однако, , если я открою файл в редакторе (например, gedit), весь файл будет там, и если я сохраню его, я внезапно смогу прочитать все это.

  output = open(fileFasta, 'w')
  lines = vSeq[1].split('\n')
  # Tried this
  output.write(vSeq[1])
  # And this
  for line in lines:
    output.write(line)
    output.flush()
  output.close()

Я, очевидно, не заканчиваю файл каким-то важным способом, который делает gedit.Идеи?

Ответы [ 2 ]

2 голосов
/ 01 ноября 2011

Использовал ghex, чтобы обнаружить, что мой исходный файл использовал символы возврата каретки (\ r) вместо символов новой строки (\ n).

0 голосов
/ 28 октября 2011

Возможно, ваша программа на C ++ недостаточно очищает поток вывода.Или, может быть, где-то есть нулевой байт ...

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