Python write()创建部分可读/损坏的文件

Python write()创建部分可读/损坏的文件,python,linux,file-io,Python,Linux,File Io,我有一个很长的字符串(DNA序列,每隔一段时间\n)正试图写入文件 用下面的代码编写,我有一个文件不能完全被C++程序中的GETLIN访问,也就是说,ISTRAMM似乎认为文件只有大约12行。同样,如果我对文件进行cat或更多操作,我只能看到文件的十几行。但是,如果我用编辑器(比如gedit)打开文件,整个文件都在那里,如果我重新保存,我突然能够读取整个文件 output = open(fileFasta, 'w') lines = vSeq[1].split('\n') # Tri

我有一个很长的字符串(DNA序列,每隔一段时间\n)正试图写入文件

用下面的代码编写,我有一个文件不能完全被C++程序中的GETLIN访问,也就是说,ISTRAMM似乎认为文件只有大约12行。同样,如果我对文件进行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那样以某种重要的方式完成文件。想法?

< P>也许你的C++程序没有足够的刷新输出流。或者某个地方可能有一个空字节…

用来发现我的源文件的ghex使用了回车符(\r)而不是换行符(\n)

试着用
od
或十六进制编辑器查看您的文件。有什么建议吗?以od开头,一切似乎都在那里。事实上,我收回这一点:od似乎也只检索了十几行字节。这是非常不寻常的。关于文件的大小,
ls-l
怎么说?它是否与
cat
od
等的输出匹配?啊,您的提示导致了这个问题:使用ghex来发现我的源文件具有回车符(\r)而不是换行符(\n)。谢谢如果你发布了一个解决方案,我会给你评分。这听起来不像是一个答案,但你可以在评论中提出一些问题。如果你想确定文件的内容,请始终转储文件。如果它包含某些二进制内容(如原始回车、退格和NUL字节),则将其打印到控制台是不可靠的。