我已經記錄了包含各種垃圾以及有用數據的文件。 我被某些模式匹配和提取的一些信息能夠按以下格式,而在蟒蛇讀取文件一行一行地一些應用得到if語句蟒蛇,存儲重複條目的智能方式
job id: job#33ABC
Bin 1:30.86
Bin2: 30.86
job id: job#44BC
Bin1: 27.22
Bin2: 8.53
Bin3: 35.75
job id: job#65A
Bin2: 17.135075
Bin4: 17.135120
job id: job#P17
Bin 3: 7.328211
Bin 4: 15.918724
現在的問題是相同的相同的日誌組重複作業ID(使用不同的值)
job id: job#33ABC
Bin1: 99
Bin2: 1099
...
...
...
如果寫作在一個表格式的文件/ CSV一些聰明的方式,使得由只看JOB_ID,它呈現元一套,右各斌,斌工作現在它基本上是很多重複的工作,同樣的工作再次出現了一組不同的值,例如工作#33ABC不停地來到10,11使用不同的值
job_id bin 1, bin2, bin3,bin4
set#1 set #2 set #3
job#33ABC 30.86, 30.86, 0, 0 30.86, 30.86, 0,0
job#44BC 27.22, 8.53, 35.75, 0 0,0,0,34.56
....
...
我讀的是日誌逐行倍
for line in input_file:
if job_name in line:
<extract job_name logic>
print job_name[0]
if 'bin1 matches'
bin1[0]=<all logic>
print "bin1",
bin1[0]
..
...
UPDATE 我用一本字典一樣
records{}
for line in input_file:
if job_name in line:
<extract job_name logic>
print job_name[0]
if 'bin1 matches'
bin1[0]=<all logic>
print "bin1",
bin1[0]
records[job_name[0]]=records.get(job_name[0],[])+[bin1[0]]
if 'bin2 matches'
...
..
records[job_name[0]]=records.get(job_name[0],[])+[bin2[0]]
for key, value in records.items():
writer.writerow([key, value])
但它在以下格式提交審判;
33ABC, " ['30.86','30.86','99.0','1099' ]
我的問題是如何識別和現在一樣 33ABC,「['30 0.86' , '30.86' ,, '99.0', '1099' ,,]由於必須有4個箱工作,現在它將所有的值作爲一個大的列表,而不是分成4個或4個分檔,或者是否有任何方式在當前的邏輯中做到這一點?
你可以使用像[在其在文檔實例(https://docs.python.org/3/library/collections.html#defaultdict-examples),但你的字典可以包含每一個字典一個defaultdict工作名稱作爲關鍵。最後你會得到一個字典,其中爲每個職位名稱,你會發現一個字典,其中包含每個bin的出現值。然後你可以用你選擇的格式輸出它(但是csv可能不起作用,因爲你的行有不同數量的列)。 –
關於你的更新:你肯定已經破壞了語法,請修復。 –
你在這裏看,我即將放棄這個邏輯,但不知道如何解決問題,那麼:( – Naumann