1
我是Python編程新手。來自文件的Python Regex Table Creator
我的任務是:
我有大量的數據的一個巨大的txt文件(20 + GB)。該結構是這樣的:
Crap
Crap
Crap
...
Crap
Crap
Useful Data = x y z
Useful Data 2 = x2 y2 z2
Crap
Crap
...
Crap
Crap
Useful Data = x' y' z'
Useful Data 2 = x2' y2' z2'
Crap
Crap...
等等這樣5000級的對象
我必須採取一切x,y和z和把它們放在一個文件,該文件應該看起來像下面這樣:
x y z x2 y2 z2
x' y' z' x2' y2' z2'
x'' y'' z'' x2'' y2'' z2''
......等等(我應該有5000行)。
我認爲正則表達式對於這項任務會很有幫助。 我已經寫了這一點,但我是一個真正的小白和不能去:
f_in_name="starout.txt" #input file
f_out_name="cmposvel" #output file
f_in = open(f_in_name)
for l in f_in:
if "system_time" in l:
time=re.compile('^ system_time =\s+(\S+)')
elif "com_pos" in l:
poscm=re.compile('^ com_pos =\s+(\S+)\s+(\S+)\s+(\S+)')
elif "com_vel" in l:
velcm=re.compile('^ com_vel =\s+(\S+)\s+(\S+)\s+(\S+)')
#how do I write t,x,y,z,vx,vy,vz in the output?
我怎麼寫(\ S +)的輸出?此外,re.compile僅在當前行或整個文檔中進行搜索?我很困惑, 有人能幫助我嗎?我真的需要這樣做一個情節,並沒有線索怎麼做。
感謝很多人,我該怎麼處理的事實,有5000個表達式在我的文件比賽有哪些?例如,有5000行格式爲'^ system_time = \ s +(\ S +)',那麼如何在輸出中以正確的順序編寫它們? – user4288514 2014-11-24 18:47:12
循環遍歷它們,並在循環中執行re.search(與您在示例代碼中一樣)。 – 2014-11-25 16:53:19