2016-05-31 4 views
0

私は10秒ごとに新しい結果を追加するcsvファイルを持っています。毎回このように(ユーザーから指定)、私はこのcsvを読んでJSONファイルを作成します。私はcsv全体を毎回JSONに変換するのではなく、更新された最後の部分だけを変換したいと思います。だから、毎回最後の行を保存しておきたいと思ったら、この行からファイルを読み込み、それをJSON形式に変換します。Pythonでcsvファイルの更新された部分だけを読む

myJson = {} 
try: 
    with open('myFile.csv', 'r') as f: #Read the csv file with read privileges. 
      for line in f: 
       lst = re.split(r' +', line.rstrip('\t')) #Columns are seperated with tabs. 
       if len(lst) == 3: #There are three columns in the file: 
        n = lst[0].strip() #Names 
        v = lst[1].strip() #Values 
        p = lst[2].strip() #Percentages 
        try: 
         myJson[n].append(v) #Add values to the according keys. 
        except KeyError: 
          myJson[n] = [v] #Handle potential KeyErrors. 
except IOError: 
    print "csv file has not been created yet." 

最も簡単な方法は、csvファイルを毎回削除することですが、私はそれを維持し、ちょうど新しいJSONファイルを作成することがはるかに有用であろう。

+0

https://stackoverflow.com/questions/12523044/how-can-i-tail-a-log-file-in-python –

+1

このcsvファイルを実際のデータベースに置き換えることを検討してください。 – Ulisha

答えて

1

プロデューサからコンシューマ、たとえばソケットやパイプにデータをシャッフルするために、別のプロトコルを使用することをお勧めします。 Lutzが指摘しているアプローチももちろん機能しますが、OSによって提供されるツール(尾)を使用することに依存しています。

関連する問題