我有一個(gè)試圖使用Galaxy在線(xiàn)工具使用的BED間隔文件。當(dāng)前,文件中的每一行都以一個(gè)數(shù)字開(kāi)頭(代表染色體編號(hào))。為了正確上載它,我需要每一行以“ chr”開(kāi)頭,然后以數(shù)字開(kāi)頭。因此,例如以“ 2L”開(kāi)頭的行,我需要進(jìn)行更改,以使它們以“ chr2L”開(kāi)頭,并對(duì)以數(shù)字開(kāi)頭的其他所有行都執(zhí)行同樣的操作(不僅是2L,還有許多不同的數(shù)字)。我在想是否可以在每行的開(kāi)頭添加一個(gè)“ chr”而不影響其他列,那太好了,但是我不知道該怎么做(python的新手)請(qǐng)您幫我一下出去?
2 回答

侃侃無(wú)極
TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
第一步打開(kāi)文件
file = open("somefile.txt")
步驟2
lines = list(file.readlines())
file.close()
第3步:使用列表理解
new_lines = ["chr"+line for line in lines]
步驟4將新行寫(xiě)回文件
with open("somefile.txt","w") as f:
f.writelines(new_lines)
為了不將所有行存儲(chǔ)在內(nèi)存中
file1 = open("some.txt")
file2 = open("output.txt","w")
for line in file1:
print >> file2, "chr"+ line
file1.close()
file2.close()
然后只需復(fù)制output.txt到您的原始文件名
添加回答
舉報(bào)
0/150
提交
取消