在回答这个问题之前,先声明我的python3代码使用的是newline=''(这是对类似问题的回答),但是行为是持久的
这段代码从一个非常大的逗号分隔的文本文件中读入数据,将一天缓冲到一个列表中,然后将该列表写入一个csv文件。我在这行的末尾发现了一个奇怪的行为:
源数据:
“27/56/4382”,“81:00:00”,“5464.4”,“5464.4”,“5464.4”,“3\r\n”
“27/56/4382”,“81:00:00”,“5464.4”,“5464.4”,“5464.4”,“3\r\n”
输出如下:
“27/56/4382”,“81:00:00”,“5464.4”,“5464.4”,“5464.4”,“3
“
“27/56/4382”,“81:00:00”,“5464.4”,“5464.4”,“5464.4”,“3
““
代码:
with open(readfilepath,newline='') as f:
for line in f:
date1 = date2 # set date1 to date2 so don't get kicked out
purchline= line # grab line
parsedline = purchline.split(",") # split up line record
date2 = parsedline[0] # grab date 2
if (date1 == date2): # if day hasn't flipped, continue to build buffer
daybuffer.append(parsedline)
else: # day has flipped. write buffer to file, clear buffer, then append this line (don't lose line!)
# create writefilepath
writedate = datetime.datetime.strptime(date1,"%M/%d/%Y").strftime("%Y%M%d")
writefilename = "poa" + writedate + "purRaw.txt"
writefilepath = writedirectorypath + writefilename
# write daybuffer to csvfile
with open(writefilepath,'w',newline='') as writecsv:
purchwriter = csv.writer(writecsv)
purchwriter.writerows(daybuffer)
# wipe out daybuffer
del(daybuffer[:])
# add last line to daybuffer
daybuffer.append(parsedline)
print("The day hath flipped.")
目前没有回答
相关问题 更多 >
编程相关推荐