我正在尝试将.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)
添加到代码中时,唯一显示的结果是[]
预期的结果是将日期时间数据作为字符串包含在每个元素中的列表。
答案 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中看到更多命令)。