2015-02-07 165 views
1

我有一個文本文件,並在文本文件內有二進制數字,如35F,1,0,1,0,0我想python找到一個特定的組合,但首先有一個度數在前面。我想要python做的是跳過這個例子35F中的F數,然後搜索1,0,1,0,0的所有二進制組合。所以輸出應該看起來像這樣Python從文本文件中提取特定數字

28F 1,0,1,0,0 
15F 1,0,1,0,0 
18F 1,0,1,0,0 
20F 1,0,1,0,0 
22F 1,0,1,0,0 

在這一刻我有這個代碼。 唯一的問題,我不能搜索我自己的具體組合它只告訴我有多少重複。

import collections 


with open('pythonbigDATA.txt') as infile: 
    counts = collections.Counter(l.strip() for l in infile) 
for line, count in counts.most_common(): 
    print count 
+0

找[Python的CSV(HTTPS://docs.python。 org/2/library/csv.html) – 2015-02-07 07:49:03

+0

「F」永遠是你想要分裂的地方嗎?試試''28F 1,0,1,0,0'.partition('F')' – dawg 2015-02-07 08:42:04

回答

3

有幾個方面來說,這似乎是最簡單的:

import csv 

combination = '1,0,1,0,0'.split(',') 

with open('pythonbigDATA.txt') as infile: 
    for row in csv.reader(infile): 
     if row[1:] == combination: 
      print row[0], ','.join(row[1:]) 
+0

是的,這個工作完全謝謝你 – 2015-02-07 20:07:57

0

如果所有線條看起來像這樣00F 0,0,0,0,0你可以使用str.split()和第一空間後保留的部分。

counts = collections.Counter(l.split()[1] for l in infile) 

編輯:您還可以使用分裂()如果沒有空間,輸入如下:00F,0,0,0,0,0

counts = collections.Counter(l.split(',',1)[1] for l in infile) 
+0

在輸入後有逗號後的溫度,例如:'35F,1,0, 1,0,0' – mhawke 2015-02-07 09:34:18

+0

謝謝。然後我必須編輯這個答案。 – 2015-02-07 09:43:47