2017-06-21 3 views
1

ネットワークドライブのファイル.csvに何千もの時系列を保存します。ファイルを更新する前に、まずファイルの最後の行を取得してタイムスタンプを確認し、そのタイムスタンプの後にデータで更新します。私はすぐに最後の行を使用するために巨大な.csvファイル全体をロードする必要がないように、.csvファイルの最後の行をネットワークドライブですばやく取得できますか?ネットワークドライブを介して.csvファイルから最後の行をすばやく取得する方法はありますか。

+1

私は答えを見つけた私が必要とすることがちょうど読むことですしながら、[ここ](https://stackoverflow.com/a/37551666/1367204) – user1367204

答えて

1

このため気の利いたreversedツールを使用すると、内蔵のcsvモジュールを使用していると仮定すると、あります:

:私のテストファイルで

import csv 
with open('some_file.csv', 'r') as f: 
    for row in reversed(list(csv.reader(f))): 
     print(', '.join(row)) 

:要するに

how to read a csv file in reverse order in python

1: test, 1 
2: test, 2 
3: test, 3 

出力結果:

test, 3 
test, 2 
test, 1 
+0

私はこのように感じるが、まだ、ファイル全体をメモリに読み込みます最後の行をメモリに格納して、不要なものをメモリに読み込む時間を無駄にしないようにします。 – user1367204

+0

インデックスを付けて各行を繰り返し処理することなく、より明示的にしてみることができます: 'print( '、' .join(逆順リスト(csv.reader(f))))))' 確信していますそれを行うより良い方法ですが、それは心に来るものです... – Doug

+0

私はそれを試して、それは時間の同じ量=( – user1367204

関連する問題