这是我的代码段:
import csv
from datetime import datetime
def connection():
import csv
new_row = []
flag = 15
with open('sample_records.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
dateObject = datetime.strptime(row[0], '%Y-%m-%d %H:%M:%S')
minute_of_day = dateObject.minute
minute_of_day = int(minute_of_day)
if minute_of_day >= flag:
file_name_of_new_csv = ("%s.csv" %
dateObject.strftime("%Y-%m-%d_%H:%M"))
new_csv_writer = csv.writer(open(file_name_of_new_csv, "w"),
delimiter=',')
new_csv_writer.writerow(new_row)
if flag + 15 == 60:
flag = 0
flag = flag + 15
new_row = []
else:
new_row.extend(row)
def main():
connection()
if __name__=="__main__":
main()
sample_records.csv包含:
2014-07-24 15:00:00,1,1,1,1,1001
2014-07-24 15:01:00,1,1,1,1,1001
2014-07-24 15:02:00,1,1,1,1,1001
2014-07-24 15:15:00,1,1,1,1,1001
2014-07-24 15:16:00,1,1,1,1,1001
2014-07-24 15:17:00,1,1,1,1,1001
2014-07-24 15:30:00,1,1,1,1,1001
2014-07-24 15:31:00,1,1,1,1,1001
2014-07-24 15:32:00,1,1,1,1,1001
2014-07-24 15:45:00,1,1,1,1,1001
2014-07-24 15:46:00,1,1,1,1,1001
2014-07-24 15:47:00,1,1,1,1,1001
2014-07-24 16:00:00,1,1,1,1,1001
2014-07-24 16:01:00,1,1,1,1,1001
2014-07-24 16:02:00,1,1,1,1,1001
这里我试图每小时生成3个csv文件。因此,第15小时包含3个文件,但它不会生成第16个小时的文件。
我得到了第15个小时的csv文件:
2014-07-24_15:15.csv
2014-07-24_15:30.csv
2014-07-24_15:45.csv
但我也应该得到:
2014-07-24_16:15.csv
答案 0 :(得分:0)
我建议使用调试器并在第
行设置断点 if minute_of_day >= flag:
然后,您可以观看row[0]
,minute_of_day
和flag
的值。这应该有助于理解会发生什么。
答案 1 :(得分:0)
从您的示例中我会说您没有获得16:15
因为您的分钟字段中没有带时间戳>= 15
的行...
BTW,您可以替换:
if flag + 15 == 60:
flag = 0
flag = flag + 15
with:
flag = (flag + 15) % 60