我有一个BED Interval文件,我正在尝试使用Galaxy在线工具。目前,文件中的每一行都以数字(代表染色体编号)开头。为了正确上传,我需要每行以“chr”开头,然后是数字。因此,例如以“2L”开头的行,我需要更改以便以“chr2L”开头,并对以数字开头的每个其他行(不仅仅是2L,有许多不同的数字)执行相同操作。我在想是否可以在每行的开头添加一个“chr”,而不会影响其他列,这会很棒,但我不知道该怎么做(对python来说很新) 你能帮帮我吗?
感谢。
答案 0 :(得分:3)
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)
答案 1 :(得分:1)
第一步打开文件
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
复制到原始文件名