3 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
當(dāng)您使用替換@時(shí),@,您要在字符串的開頭加上一個(gè)逗號(hào)(因?yàn)樗蚤_頭@)。然后,當(dāng)您分割逗號(hào)時(shí),第一個(gè)逗號(hào)之前沒有任何內(nèi)容,因此這會(huì)在分割中給您一個(gè)空字符串。發(fā)生的情況基本上是這樣的:
>>> print ',x'.split(',')
['', 'x']
如果您知道數(shù)據(jù)始終以開頭@,則可以跳過循環(huán)中的空記錄。做吧for item in fq_record[1:]。

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
您也可以逐行進(jìn)行,而無需全部替換:
fobj = io.StringIO("""@SEQ_ID
GATTTGGGGTT
+
!''*((((***
@SEQ_ID
GATTTGGGGTT
+
!''*((((***""")
data = []
entry = []
for raw_line in fobj:
line = raw_line.strip()
if line.startswith('@'):
if entry:
data.append(entry)
entry = []
entry.append(line)
data.append(entry)
data 看起來像這樣:
[['@SEQ_ID', 'GATTTGGGGTTy', '+', "!''*((((***"],
['@SEQ_ID', 'GATTTGGGGTTx', '+', "!''*((((***"]]
添加回答
舉報(bào)