原代码:
import csv
import os
# 2016-01-01 周五
i = 4
with open(os.path.join(os.path.dirname(__file__), "data/weekend.csv")) as csvFile:
rows = csv.reader(csvFile)
with open(os.path.join(os.path.dirname(__file__), "data/test.csv"), 'w') as f:
writer = csv.writer(f)
for row in rows:
row=list(row)
if i > 5:
row.append("1") # 周末为1
else:
row.append("0") # 工作日为0
i = i % 7 + 1
writer.writerow(row)
目的是将从2016-01-01至2018-05-31的日期贴上标签,工作日为0,周末为1。代码运行后结果如下,会带有空余行:
解决方案:在open的时候加上 newline=”” 这个参数。
修改后的代码:
import csv
import os
# 2016-01-01 周五
i = 4
with open(os.path.join(os.path.dirname(__file__), "data/weekend.csv")) as csvFile:
rows = csv.reader(csvFile)
with open(os.path.join(os.path.dirname(__file__), "data/test.csv"), 'w',newline='') as f:
writer = csv.writer(f)
for row in rows:
row=list(row)
if i > 5:
row.append("1") # 周末为1
else:
row.append("0") # 工作日为0
i = i % 7 + 1
writer.writerow(row)
修改后运行结果: