我正在嘗試將長(zhǎng).txt文本表解析為pd.DataFrame. 或 Python 中的任何其他可讀形式。我成功地嘗試了一種方法來(lái)做到這一點(diǎn),但我對(duì)它并不完全滿意,我確實(shí)想改進(jìn)它。這是我的一個(gè)子集.txt:USAF WBAN STATION NAME CTRY ST CALL LAT LON ELEV(M) BEGIN END007018 99999 WXPOD 7018 +00.000 +000.000 +7018.0 20110309 20130730007026 99999 WXPOD 7026 AF +00.000 +000.000 +7026.0 20120713 20170822007070 99999 WXPOD 7070 AF +00.000 +000.000 +7070.0 20140923 20150926008260 99999 WXPOD8270 +00.000 +000.000 +0000.0 19960101 20100731008268 99999 WXPOD8278 AF +32.950 +065.567 +1156.7 20100519 20120323008307 99999 WXPOD 8318 AF +00.000 +000.000 +8318.0 20100421 20100421008411 99999 XM20 20160217 20160217008414 99999 XM18 20160216 20160217008415 99999 XM21 20160217 20160217008418 99999 XM24 20160217 20160217010000 99999 BOGUS NORWAY NO ENRS 20010927 20041019010010 99999 JAN MAYEN(NOR-NAVY) NO ENJA +70.933 -008.667 +0009.0 19310101 20190203我嘗試了以下方法:測(cè)試 1:re用于解析空格:with open('test.txt') as f: lines = f.readlines() parsed_lines = [re.split("\s+", line) for line in lines]print(test)['007018', '99999', 'WXPOD', '7018', '+00.000', '+000.000', '+7018.0', '20110309', '20130730', '']這是好的,但遠(yuǎn)非最佳,站名被拆分為另一個(gè)列表元素,這僅顯示了我的不良regex能力。 })這產(chǎn)生了一個(gè)很pd.DataFrame容易清潔的好東西。這是一個(gè)很好的方法,但我肯定不是一個(gè)很好的方法,有什么方法可以改進(jìn)這個(gè)功能嗎?我希望這段代碼完美無(wú)缺,我不相信那些硬編碼的位置。我知道有些工具喜歡sed或awk非常有用,但現(xiàn)在我只能在這個(gè)上運(yùn)行 python;當(dāng)然subprocess可以做到這一點(diǎn),但我想依靠 Python 來(lái)做到這一點(diǎn)。
使用不帶引號(hào)的字符串將文本文件解析為 python
開(kāi)滿天機(jī)
2021-11-02 20:18:38