在python中对BED/Interval文件中的每一行进行相同的更改



我有一个BED间隔文件,我正在尝试使用Galaxy在线工具。目前,文件中的每一行都以一个数字开头(代表染色体数目)。为了正确上传,我需要每行以"chr"开头,然后是数字。例如,以"2L"开头的行,我需要更改它们以"chr2L"开头,并对以数字开头的其他行做同样的操作(不仅仅是2L,还有许多不同的数字)。我在想,如果我能在每行的开头添加一个"chr",而不影响其他列,那将是伟大的,但我不知道如何做到这一点(非常新的python)你能帮我一下吗?

谢谢。

http://docs.python.org/2/library/stdtypes.html#file.writelines

with open('bed-interval') as f1, open('bed-interval-modified', 'w') as f2:
    f2.writelines('chr' + line for line in f1)

第一步打开文件

  file = open("somefile.txt")

第2步得到行

  lines = list(file.readlines())
  file.close()

步骤3使用列表推导式

   new_lines = ["chr"+line for line in lines]

步骤4将新行写入文件

   with open("somefile.txt","w") as f:
       f.writelines(new_lines)

为了不将所有行存储在内存中

   file1 = open("some.txt")
   file2 = open("output.txt","w")
   for line in file1:
       print >> file2, "chr"+ line
   file1.close()
   file2.close()

然后将output.txt复制到您的原始文件名

相关内容

  • 没有找到相关文章

最新更新