注意,本文是 Python3
空行问题
Python 3 中如果要防止空行,需要在open的时候加上 newline=""
这个参数,示例代码如下:
# Python 2
with open('/pythonwork/thefile_subset11.csv', 'wb') as outfile:
writer = csv.writer(outfile)
# Python 3
with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile:
writer = csv.writer(outfile)
乱码问题
Windows系统打开文件的时候需要读取文件的前几个字符来确认编码,如果没找到那么就是乱码(我也很无奈)
好在,如果我们在Windows下面生成文件,它会自动加上这个确认编码,我们不用出现乱码问题
但是,如果我们使用 Linux/Unix 生成的文件,想要在Windows上面打开并且不乱码,我们就要显试的写入那几个确认编码的字符。
file.write(codecs.BOM_UTF8)
那么那个标志编码到底长什么样呢,这样:
直接看示例代码:
# 先给文件写一个Windows系统用来识别编码的头
with open("a12.csv","wb") as datacsv:
datacsv.write(codecs.BOM_UTF8)
# 使用`append`模式打开文件,继续写入
with open("a12.csv","a") as datacsv:
# 定义一个 csv writer
csvwriter = csv.writer(datacsv, dialect='excel')
# 写入一行
csvwriter.writerow(["A", "B"])
结论
Windows真是蛋疼