拆分数据日wis

2024-04-19 20:41:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有带时间epoch(UNIX time)的数据文件,我正试图将数据按天/日期拆分为单独的文件。例句:这些数据是90天的,所以应该转换成90个文件。我不知道怎么开始。有时我知道天数,有时我不知道,为了方便起见,我试图找到一种更好的方法来简单地按天/日期分割数据。Data[0] Data[1] Timeepoch[2] Timeepoch[3]Time_1 and Time_2是开始时间和停止时间。在

在资料图:这些是只有几行。在

Data_1  Data_2  Time_1  Time_2
3436    1174    1756908 1759291
3436    3031    1756908 1759291
3436    1349    1756908 1759291
5372    937     1756913 1756983
4821    937     1756913 1756983
4376    937     1756913 1756983
2684    937     1756913 1756983
3826    896     1756961 1756971
3826    896     1756980 1756997
5372    937     1756983 1757045
4821    937     1756983 1757045
4376    937     1756983 1757045
2684    937     1756983 1757045
3826    896     1757003 1757053
4944    3715    1757009 1757491
4944    4391    1757009 1757491
2539    1431    1757014 1757337
5372    937     1757045 1757104
4821    937     1757045 1757104
4376    937     1757045 1757104
2684    937     1757045 1757104
896     606     1757053 1757064
3826    896     1757064 1757074
5045    4901    1757074 1757085
4921    4901    1757074 1757085
4901    3545    1757074 1757085
4901    3140    1757074 1757085
4901    4243    1757074 1757085
896     606     1757074 1757084

Tags: and文件数据方法datatime数据文件时间
3条回答

把时间戳从UTC到POS IX加上:

>>> from datetime import date, timedelta
>>> date(1970, 1, 1) + timedelta(seconds=1756908)
datetime.date(1970, 1, 21)

然后创建一个映射:date -> file并使用它拆分输入文件:

^{pr2}$
import itertools
import datetime

# Extract the date from the timestamp that is the third item in a line
# (Will be grouping by start timestamp)
def key(s):
    return datetime.date.fromtimestamp(int(s.split()[2]))

with open('in.txt') as in_f:
    for date, group in itertools.groupby(in_f, key=key):
        # Output to file that is named like "1970-01-01.txt"
        with open('{:%Y-%m-%d}.txt'.format(date), 'w') as out_f:
            out_f.writelines(group)

datetime.fromtimestamp(timestamp)

可以从时间戳中获取datetime对象

datetime.fromtimestamp(timestamp).replace(second=0, minute=0, hour=0)

可以得到一个只包含日期组件的datetime对象。在

相关问题 更多 >