1. 问题
- 在天池大数据比赛、腾讯算法比赛等中都需要提交结果文件,一般是csv文件
- win下的默认换行符是CRLF(回车换行),linux或macos下的默认换行符是LF(换行),这些比赛要求提交的文件大多数都需要是LF换行符
- 我是在windows10下使用vscode敲代码的,代码也是在win10下跑的,如果不留心,就会生成CRLF换行符的文件,提交结果总会出现没成绩、格式错误、表头信息错误等问题(例如近期的阿里妈妈广告预测比赛和腾讯广告算法大赛,都存在由于换行符不对导致的格式错误的问题)
2. 解决方案
对于数据挖掘、算法类的比赛,一般都是使用dataframe来存储、操作数据,最后结果也会使用dataframe.to_csv来保存csv文件。最简单的解决方案就是使用二进制方式写文件即可,其实这个方法对txt文件也有效:
import datetime
time_format = '%Y-%m-%d-%H-%M-%S'
time_now = datetime.datetime.now()
file_name = 'result/result_%s.csv'%time_now.strftime(time_format)
# result是一个dataframe
result.t