Python Linux文件格式问题(^M$而不是$)

Python Linux文件格式问题(^M$而不是$),python,linux,format,virtualbox,Python,Linux,Format,Virtualbox,我有一个很奇怪的问题 通过Python我创建了一个.bed文件。此.bed文件由3列组成:chromosomestartend。然后,该文件应该由Linux中的内置工具进行分析,但它显示“意外的文件格式”。通过cat-e file.bed | more,我看到所有行都以^M$结尾,其中应该只以$结尾(至少手动创建的文件只显示$and work) 有人知道如何解决这个问题吗?我在一个带有Ubuntu 12.04.4 LTS的VirtualBox上使用Bio Linux 谢谢 编辑:文件是通过Pyt

我有一个很奇怪的问题

通过Python我创建了一个.bed文件。此.bed文件由3列组成:chromosomestartend。然后,该文件应该由Linux中的内置工具进行分析,但它显示“意外的文件格式”。通过cat-e file.bed | more,我看到所有行都以^M$结尾,其中应该只以$结尾(至少手动创建的文件只显示$and work)

有人知道如何解决这个问题吗?我在一个带有Ubuntu 12.04.4 LTS的VirtualBox上使用Bio Linux

谢谢

编辑:文件是通过Python构建的

test = "".join(chromosomes) #chromosomes = chr<tab>start<tab>end<space>\n
bed.write(test[0:-1])
test=”“.join(染色体)#染色体=chrstartend\n
bed.write(测试[0:-1])

这应该对您有所帮助:Windows格式文本文件以
\r\n
结尾,UNIX文本文件仅以
\n
结尾。我猜您正在Windows上生成此文件。如果您以二进制模式打开文件进行写入(
bed=open(outfile,'wb')
——关键是
b
——Python 2.x将停止尝试为您转换为本地本机换行符(否则,它会添加缺少的
\r
字符,而
cat-A
将其呈现为
^M
)。当然,这会使某些Windows程序(如记事本)不高兴。我明天会尝试,但我认为我的问题已经解决。非常感谢;)