我有一個文件,它是需要約100MB,看起來像這樣:如何閱讀可變多行數據的文件在Python
#meta data 1
skadjflaskdjfasljdfalskdjfl
sdkfjhasdlkgjhsdlkjghlaskdj
asdhfk
#meta data 2
jflaksdjflaksjdflkjasdlfjas
ldaksjflkdsajlkdfj
#meta data 3
alsdkjflasdjkfglalaskdjf
此文件包含對應於幾個可變元數據的一行只包含字母數字字符的長度數據。什麼是閱讀此數據到一個簡單的列表這樣的最佳方式:
data = [[#meta data 1, skadjflaskdjfasljdfalskdjflsdkfjhasdlkgjhsdlkjghlaskdjasdhfk],
[#meta data 2, jflaksdjflaksjdflkjasdlfjasldaksjflkdsajlkdfj],
[#meta data 3, alsdkjflasdjkfglalaskdjf]]
我最初的想法是使用read()
方法讀取整個文件到內存中,然後使用正則表達式解析數據進所需的格式。有更好的pythonic方式嗎?所有元數據行都以一個八進制開頭,所有數據行都是字母數字。謝謝!
哇,這是很棒的!我遇到的唯一困難是我的輸出給了我'[(假,'skadjflaskdjfasljdfalskdjfl \ nsdkfjhasdlkgjhsdlkjghlaskdj \ nasdhfk')...'我似乎無法明白爲什麼我會得到一個布爾值以及它爲什麼是假的? – drbunsen
看起來你可能正在印刷'key'而不是'meta'?你使用'data.append((key,lines))'?如果是這樣,請更改'key' - >'meta'。 – unutbu
是的,這是問題所在。 – drbunsen