2016-02-03 33 views
0

我想逐個讀取mydir目錄中以「.fasta」結尾的所有文件,並將除「>」開頭的行以外的內容保存到一個名爲「數據」的字符串用於進一步分析,同時也忽略換行符。到目前爲止,我有這樣的:如何在Python中以字符串讀取文件時刪除以「>」開頭的行

for file in os.listdir(mydir): 
    if file.endswith(".fasta"): 
    with open(file, 'r') as myfile: 
     data = myfile.read().replace('\n', '') 

如何閱讀文件轉換成字符串,並以相同的命令跳過開始「>」所有行?

+0

的可能的複製[正則表達式+的Python - 取出A \ *開頭的所有線路(http://stackoverflow.com/questions/12925191/regex-python-remove-all -lines-beginning-a) – tripleee

回答

1

在這裏你去

for file in os.listdir(mydir): 
    if file.endswith(".fasta"): 
    with open(file, 'r') as myfile: 
     data = "".join(line for line in myfile if line[:1]!='>') 
+0

非常感謝@Yoav,它現在非常棒! – PyreneanIbex

+0

@PyreneanIbex:你不需要使用slice'line [:1]!='>''。改爲使用索引訪問'line [0]!='>''或'not line.startswith('>')'。 – jfs

+0

@YoavGlazner我不認爲'for line in file'可能會產生一個空行('len(line)> 0')。你能否提供一個反例(文件內容爲字節文字,例如'b'\ n''不會產生空行)? – jfs

相關問題