【发布时间】:2021-05-12 06:32:37
【问题描述】:
我可以在这里使用一些帮助。我正在尝试将已转换为列表的 DateTime 索引附加到现有的 CSV 文件中。当我运行代码时,列表确实按预期追加,但时间以逗号分隔,而用于追加数据的列表不是。我的代码如下
import csv
import numpy as np
import datetime
import pandas as pd
time_now = datetime.datetime.now() + datetime.timedelta(minutes = 5)
time_future = time_now + datetime.timedelta(minutes = 30)
time_predict = pd.date_range(time_now, time_future, freq = '5min')
time_predict_list = time_predict.strftime("%Y-%m-%d %H:%M:%S").tolist()
overwrite = input("Would You like to Overwrite or Append Prediction Data? Type (a) to Append, Type (o) to Overwrite: ")
if overwrite == "o":
np.savetxt("time_list.csv",
time_predict_list,
delimiter =", ",
fmt ='% s')
def append_list_as_row(file_name, list_of_elem):
with open(file_name, 'a+', newline='') as file:
csv_writer = csv.writer(file)
csv_writer.writerows(list_of_elem)
if overwrite != "o":
append_list_as_row('time_list.csv',time_predict_list)
实际输出:
2021-02-08 10:54:31
2021-02-08 10:59:31
2021-02-08 11:04:31
2021-02-08 11:09:31
2021-02-08 11:14:31
2021-02-08 11:19:31
2021-02-08 11:24:31
2,0,2,1,-,0,2,-,0,8, ,1,0,:,5,4,:,5,1
2,0,2,1,-,0,2,-,0,8, ,1,0,:,5,9,:,5,1
2,0,2,1,-,0,2,-,0,8, ,1,1,:,0,4,:,5,1
2,0,2,1,-,0,2,-,0,8, ,1,1,:,0,9,:,5,1
2,0,2,1,-,0,2,-,0,8, ,1,1,:,1,4,:,5,1
2,0,2,1,-,0,2,-,0,8, ,1,1,:,1,9,:,5,1
2,0,2,1,-,0,2,-,0,8, ,1,1,:,2,4,:,5,1
那么预期的输出将是第 8-14 行中的相同值,但没有用逗号分隔
【问题讨论】:
-
writerow不是writerows。后者采用列表列表,而不是列表。字符串是可迭代的,看起来像一个单个字符的列表。
标签: python numpy csv datetime delimiter