Python:将日期时间从.txt文件导入到单独的列表中

时间:2019-09-06 13:51:41

标签: python python-3.x file datetime import

我正在尝试将.txt文件中的多列日期和时间数据读入python中。

具有相同间距的文件的准确示例是:

Unrequired info
Unrequired info

Unrequired info
Initial start:     Main start:     Recovery start:     Recovery end:     H:
yyyymmdd hh:mm          yyyymmdd hh:mm          yyyymmdd hh:mm          yyyymmdd hh:mm               nT
20030817 05:06          20030819 05:06          20030901 05:06          20030902 05:06                -10
20040713 21:22          20040716 23:42          20040717 02:41          20040718 16:09                -93

然后有多行日期时间信息。

我想将日期时间信息从单独的列读入单独的列表或数组(以字符串或日期时间格式)。我不需要最后一栏中的数据。

这是我到目前为止尝试过的代码:

InitialStart = []
MainStart = []
RecoveryStart = []
RecoveryEnd = []


with open('list.txt', 'r') as file:
    lines = file.readlines()[6:]
    for row in file:
        a, b, c, d, e = row.split()
        InitialStart.append(str(a))
        MainStart.append(str(b))
        RecoveryStart.append(str(c))
        RecoveryEnd.append(str(d))

print(InitialStart)添加到代码中时,唯一显示的结果是[]

预期的结果是将日期时间数据作为字符串包含在每个元素中的列表。

1 个答案:

答案 0 :(得分:0)

一位同事为此提供了答案(pandas.read_csv),所以我要回答自己的问题。

listTable = pd.read_csv(filepath_or_buffer='list.txt', sep='\s{2,}', names=['InitialStart', 'MainStart', 'RecoveryStart', 'RecoveryEnd', 'H'], dtype='str', engine='python', skiprows=(0, 1, 2, 3, 4, 5))

sep='\s{2,}'将分隔符设置为空格(\s),{2,}将分隔符设置为2或更大(可以在here中看到更多命令)。