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

2024-09-27 00:17:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个床间隔文件,我正试图使用银河在线工具。目前,文件中的每一行都以一个数字(代表染色体编号)开头。为了正确上传,我需要每一行以“chr”开头,然后是数字。例如,以“2L”开头的行,我需要更改,以便它们将以“chr2L”开头,并对其他以数字开头的行执行相同的操作(不仅仅是2L,还有许多不同的数字)。我在想,如果我能在每一行的开头添加一个“chr”,而不影响其他列,那就太好了,但是我不知道如何做到这一点(对python来说非常陌生) 你能帮帮我吗?在

谢谢。在


Tags: 文件工具间隔代表数字银河编号染色体
2条回答

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")

第二步去接电话

^{pr2}$

第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复制到原始文件名

相关问题 更多 >

    热门问题