2016-07-18 9 views
0

私はこれをPythonでより良い部分について行う方法を見つけようとしていますが、この質問に具体的に答えたい人はいません。私のような、すべての行がイベントとタイムスタンプでログファイルを、持っている:タイムスタンプHH:MM:SS.xxxxxxxの列をミリ秒に変換する方法は?

HH:MM:SS.xxxxxxx \t Event 
HH:MM:SS.xxxxxxx \t Event 
HH:MM:SS.xxxxxxx \t Event 
... 

私はリストにこのすべてを置くことに成功し、そのリストを操作する方法を考え出しました。私が把握できなかったのは、タイムスタンプ(0から始まる(よく、1秒で、実際は約0)から)をミリ秒(Excelでできること)に変換する方法です。したがって、タイムスタンプは、実際の時ではなく経過時間を表しています。最後の7つのxは私にとって意味をなさないので、彼らが何であるかは分かりません。

このタイムスタンプをミリ秒単位で変換するために使用できるコードスニペットがありますか?

+4

*「誰も私が使用できるコードスニペットを持っていますか?」は本当に適切な質問ではありません。あなたが1週間以上この作業をしていたら、あなたのコードはどこにありますか、それに正確に何が問題になっていますか? – jonrsharpe

+0

彼らはあなたのリストに文字列として入っていますか?あなたは真剣にこの性質のデータを操作するための 'pandas'ライブラリを考慮する必要があります。それはそれを読み込み、それを簡単に保存します。また、試した実際のコードの例と、おそらくデータのサンプルは、この問題がより牽引力を増やすのに役立ちます。 –

答えて

0

おそらく、タイムスタンプがdatetime.datetime.now()でフォーマットされていれば、おそらく.microsecondから取得します。

時間= datetime.datetime.now()

印刷Time.microsecond

はマイクロ秒レベルまで、あなたに多くの時間スコープを与えるだろう。

1

7つのxの7つの実際のxがありますか、または秒数の形式表現ですか? 入力データの精度がわずか数秒に低下する場合、差異をミリ秒単位で計算する方法はわかりません。

私はあなたが(日時など)Pythonでの取り扱い時間にドキュメントを読むことをお勧め

私は一緒に次の石畳、そこから:

2時間文字列を設定し
>>> from datetime import datetime, timedelta 

- あなたがうまくいけばもののように持ってきた。時間にそれらを変換する

>>> times1="12:45:31.123456" 
>>> times2="12:45:31.654321" 

使用datetime.strptimeは

>>> timet1 = datetime.strptime(times1,"%H:%M:%S.%f") 
>>> timet2 = datetime.strptime(times2,"%H:%M:%S.%f") 

オブジェクト時間デルタ

>>> t_delta = timet2 - timet1 
>>> str(t_delta)  
'0:00:00.530865' 

注得るためにそれらを引く:私は時間から7桁を省略しなければならなかったがstrptimeはマイクロ秒間に6文字しか受け入れられません(感覚的には十分です)。それらが実際のxの場合、strptimeの書式文字列の最後に '.xxxxxxx'を使用するだけで、datetimeはそれらを捨て去ります。 差の秒、分、時をミリ秒に変換する場合は、timeオブジェクトタプルを直接操作する必要があります。 (datetimeと他の多くのSOスレッドのドキュメントを参照してください)

関連する問題