高端网站定制方案,海南做网站的公司哪家好,wordpress的页面图片排版,广州市天河区发布写这些文章主要是督促自己学习#xff0c;过去两年时间#xff0c;断断续续在学习linux、python以及机器学习方面的知识#xff0c;东西看了很多#xff0c;却没有实际动手操作#xff0c;很多不明白的知识当时解决后没有记录#xff0c;现在也忘得差不多了。为此#x…写这些文章主要是督促自己学习过去两年时间断断续续在学习linux、python以及机器学习方面的知识东西看了很多却没有实际动手操作很多不明白的知识当时解决后没有记录现在也忘得差不多了。为此希望能在这里记录自己每天的学习轨迹以后温习时也方便。1.不同操作系统换行符不统一linux:\n windows:\r\n mac:\r2.open函数newline用法If csvfile is a file object, it should be opened with newline.上述引用来自python 中关于csv标准库的介绍对于这句话相当疑惑因此编写以下程序来辨别。Case 1: The file is read and written with newline.csvfileopen(csvfile.csv,w,newline)writercsv.writer(csvfile)writer.writerow(a)writer.writerow(b)csvfile.close()csvfileopen(csvfile.csv,r,newline)txtdatacsvfile.read()csvfile.close()最终txtdata中的内容为a\r\nb\r\n。Case 2: The file is written with newline, but read without it.csvfileopen(csvfile.csv,w,newline)writercsv.writer(csvfile)writer.writerow(a)writer.writerow(b)csvfile.close()csvfileopen(csvfile.csv,r)txtdatacsvfile.read()csvfile.close()最终txtdata中的内容为a\r\nb\r\n。Case 3: The file is written without newline, but read with it.csvfileopen(csvfile.csv,w)writercsv.writer(csvfile)writer.writerow(a)writer.writerow(b)csvfile.close()csvfileopen(csvfile.csv,r,newline)txtdatacsvfile.read()csvfile.close()最终txtdata中的内容为a\r\r\nb\r\r\n。Case 4: The file is read and written without newline.csvfileopen(csvfile.csv,w)writercsv.writer(csvfile)writer.writerow(a)writer.writerow(b)csvfile.close()csvfileopen(csvfile.csv,r)txtdatacsvfile.read()csvfile.close()最终txtdata中的内容为a\n\nb\n\n。原因分析On input,if newlineis None, universal newlines mode is enabled. Lines in the input can end in \n, \r, or \r\n, and these are translated into \n before being returned to the caller. If it is , universal newline mode is enabled, but line endings are returned to the caller untranslated. If it has any of the other legal values, input lines are only terminated by the given string, and the line ending is returned to the caller untranslated.On output,if newlineis None, any \n characters written are translated to the system default line separator,os.linesep. If newlineis , no translation takes place. If new lineis any of the other legal values,any \n characters written are translated to the given string.csv标准库中的writerow在写入文件时会加入\r\n作为换行符if newline is 换行符不会被转化而是直接输出如case 1所示。当写文件时newline程序写入a\r\nb\r\n读取文件时newlineNoneuniversal newlines mode工作换行符\r\n被翻译为\n如case 2所示。当写文件时newlineNonecsv先是将a\r\nb\r\n写入内存再写入文件时universal newlines mode工作换行符\n被翻译为\r\n最终结果如case 3所示。当写文件时newlineNonecsv先是将a\r\nb\r\n写入内存再写入文件时universal newlines mode工作换行符\n被翻译为\r\n读取文件时newlineNoneuniversal newlines mode工作换行符\r和\r\n被翻译为\n显示为a\n\nb\n\n如case 4所示。