Python write()创建部分可读/损坏的文件
我有一个很长的字符串(DNA序列,每隔一段时间\n)正试图写入文件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
用下面的代码编写,我有一个文件不能完全被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字节),则将其打印到控制台是不可靠的。