3 回答

TA貢獻1817條經驗 獲得超14個贊
當您使用替換@時,@,您要在字符串的開頭加上一個逗號(因為它以開頭@)。然后,當您分割逗號時,第一個逗號之前沒有任何內容,因此這會在分割中給您一個空字符串。發生的情況基本上是這樣的:
>>> print ',x'.split(',')
['', 'x']
如果您知道數據始終以開頭@,則可以跳過循環中的空記錄。做吧for item in fq_record[1:]。

TA貢獻1851條經驗 獲得超3個贊
您也可以逐行進行,而無需全部替換:
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', '+', "!''*((((***"]]
添加回答
舉報