我想将日期时间转换为csv文件中的时间戳

时间:2017-05-17 15:12:12

标签: python csv datetime awk

我想将日期时间转换为csv文件中的时间戳。日期时间格式位于我的csv文件的第8列。请帮忙。提前致谢。 这就是我到目前为止所做的。

这是污染数据(pollution.csv)最后一列是日期时间格式

臭氧,particullate_matter,carbon_monoxide,sulfure_dioxide,nitrogen_dioxide,经度,纬度,日期时间

101,94,49,44,87,10.104986076057457,56.23172069428216,2014-08-01 00:05:00
106,97,48,47,86,10.104986076057457,56.23172069428216,2014-08-01 00:10:00
107,95,49,42,85,10.104986076057457,56.23172069428216,2014-08-01 00:15:00
103,90,51,44,87,10.104986076057457,56.23172069428216,2014-08-01 00:20:00
105,94,49,39,82,10.104986076057457,56.23172069428216,2014-08-01 00:25:00
106,92,48,42,77,10.104986076057457,56.23172069428216,2014-08-01 00:30:00
110,87,50,40,81,10.104986076057457,56.23172069428216,2014-08-01 00:35:00
106,91,52,36,82,10.104986076057457,56.23172069428216,2014-08-01 00:40:00
106,88,50,40,85,10.104986076057457,56.23172069428216,2014-08-01 00:45:00

我想将最后一列转换为一组整数值,即Timestamp。

我希望我的污染.sv看起来像我在下面所示。

臭氧,particullate_matter,carbon_monoxide,sulfure_dioxide,nitrogen_dioxide,经度,纬度,日期时间

101,94,49,44,87,10.104986076057457,56.23172069428216,1406831700.0
106,97,48,47,86,10.104986076057457,56.23172069428216,1406832000.0
107,95,49,42,85,10.104986076057457,56.23172069428216,1406832300.0
103,90,51,44,87,10.104986076057457,56.23172069428216,1406832600.0
105,94,49,39,82,10.104986076057457,56.23172069428216,1406832900.0
106,92,48,42,77,10.104986076057457,56.23172069428216,1406833200.0
110,87,50,40,81,10.104986076057457,56.23172069428216,1406833500.0
106,91,52,36,82,10.104986076057457,56.23172069428216,1406833800.0
106,88,50,40,85,10.104986076057457,56.23172069428216,1406834100.0

我想将日期时间转换为时间戳。

到目前为止我做了什么

  import time
   t = '2014-08-01 00:05:00'
   ts = time.strptime(t, '%Y-%m-%d  %H:%M:%S')
   timestamp = time.mktime(ts)
   print(timestamp)

我能够获得时间戳值。

我的时区 - 5月17日星期三16:47:20 IST 2017(印度标准时间)

2 个答案:

答案 0 :(得分:0)

您想要的是将日期字符串转换为时间戳:

import datetime

dt = datetime.datetime.strptime("2014-10-28 19:00:09", "%Y-%m-%d %H:%M:%S")
print(dt.timestamp())

你得到:

1414522809.0

要阅读CSV文件,请参阅文档:csv

以下是一个例子:

import io
import csv

with open("your_file.csv", mode="r", encoding="utf-8") as fd:
    reader = csv.reader(fd)
    header = next(iter(reader))
    for row in reader:
        print(row[-1])

你得到:

2014-08-01 00:05:00
2014-08-01 00:10:00
2014-08-01 00:15:00
2014-08-01 00:20:00
2014-08-01 00:25:00
2014-08-01 00:30:00
2014-08-01 00:35:00
2014-08-01 00:40:00
2014-08-01 00:45:00

答案 1 :(得分:0)

试试这个:

<div class="item video " data-reactid="192">
    <a href="/video/sddfo" data-reactid="193">
        <div class="LazyLoad is-visible" style="height:168px;" data-reactid="194">
            <img class="video" src="/images/icon-video.svg" data-reactid="195">
        </div>
    </a>
    <p class="name" data-reactid="196">I am free video2</p>
</div>

以上使用GNU awk for mktime()和gensub()。您可以添加&#34; .0&#34;在每个值的末尾,如果你喜欢,但这似乎毫无意义 - 你从来没有真正得到一个有意义的值,因为你的所有输入都是在几秒钟的分辨率。这与您的预期输出之间的差异几乎可以肯定是由于脚本运行的时区。