2017-06-12 4 views
0

ストリームからの出現回数に問題があります。出現数ストリーム

私のコードは次のとおりです。

f = open('xyz.txt') 
lines = f.read().splitlines() 
f.close() 
for line in lines: 
    parts=line.split() 
    for part in parts: 
     i=0 
     if parts.count("2017"): 
      i+=1 

私は、この数は、ファイルxyz.txtにある回数を示すために何ができますか?簡単な質問ですが、私は多くの情報を検索して解決できません。任意のヘルプ:)

EDITしてくれてありがとう:ファイルxyz.txtでは、私はこれらの列を持っている:私は日付「2017」は何回であることを示すために何ができるか

Name   Date 
2017 AA  2017 Jun 4 

+0

最大の問題は、あなたの列がスペースで区切られていることで、 *および*列の値にはスペースが含まれています。これは問題を複雑にします。コード内の行を 'parts = line.split()[1:]'に更新してください。 –

+0

@ DanielR.Livingston:日付が確実に3つであると仮定すると、 'name、year、month、day = line.rsplit(None、3)'とすることができます。単一の値。 – ShadowRanger

答えて

0
i = 0 
with open('wyz.txt') as f: 
    for line in f: 
      if "2017" in line: 
       i = i + 1 
+0

しかし、これはすべての値 "2017"だけでなく日付を追加します。私はこの形式の日付を持っています:2017 6月25日lib datetimeの使い方は? – Graku

+0

あなたは何をしようとしているのか混乱しています。より多くの情報で投稿を更新できますか?あなたは* '* 2017'を数えたいと思う** **それが日付形式の中にある場合、またはそれが何らかの事で数えられたいのですか? lib datetimeで何をしようとしていますか? –

+0

ok私は投稿を編集します:) – Graku

1

あなたはその日付形式で、次のようにそれを行うためにregexを使用することができます場合にのみ、2017年をカウントしたい場合:

import re 
with open('xyz.txt', 'r') as f: 
    count = 0 
    for line in f: 
     count += len(re.findall(r'\s+(2017)\s+[a-zA-Z]{3}\s+\d+', line)) 
    print count 
関連する問題