第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

.split()在python3中創(chuàng)建空白行

.split()在python3中創(chuàng)建空白行

慕的地6264312 2021-03-19 18:15:50
我正在嘗試使用python3將'fastq'文件轉(zhuǎn)換為制表符分隔的文件。輸入如下:(第1-4行是我需要以制表符分隔的格式打印的一條記錄)。在這里,我試圖將每個(gè)記錄讀入一個(gè)列表對(duì)象:@SEQ_IDGATTTGGGGTT+!''*((((***@SEQ_IDGATTTGGGGTT+!''*((((***使用這個(gè):data = open('sample3.fq')fq_record = data.read().replace('@', ',@').split(',')for item in fq_record:        print(item.replace('\n', '\t').split('\t'))輸出為:['']['@SEQ_ID', 'GATTTGGGGTT', '+', "!''*((((***", '']['@SEQ_ID', 'GATTTGGGGTT', '+', "!''*((((***", '', '']我在輸出的開頭出現(xiàn)空白行,我不明白為什么?我知道這可以通過許多其他方式完成,但是我在學(xué)習(xí)python時(shí)需要弄清楚原因。謝謝
查看完整描述

3 回答

?
大話西游666

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:]。


查看完整回答
反對(duì) 回復(fù) 2021-03-31
?
皈依舞

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', '+', "!''*((((***"]]


查看完整回答
反對(duì) 回復(fù) 2021-03-31
  • 3 回答
  • 0 關(guān)注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)