咱們知道在Windows平臺下的換行符是\r\n,而在linux下的換行符是\n。如今寫一個簡單程序來測試python是如何處理這些換行符的。python
準備文件data.txt,該文件在Windows平臺下編輯。內容爲:linux
程序:windows
path = sys.path[0] name = 'data.txt' li = [] with open(path + '/' + name) as f: for line in f: li.append(line) print li
在window環境下的python2運行結果爲:app
['1\n', '1\n', '2\n', '3\n', '4']測試
對前面的代碼進行一下修改,在window環境下的python3運行結果爲:blog
['1\n', '1\n', '2\n', '3\n', '4']文檔
到這裏沒什麼問題,可是在Linux平臺下運行該程序結果就不同了。it
在linux平臺下用python2運行上述代碼,結果爲:class
['1\r\n', '1\r\n', '2\r\n', '3\r\n', '4']程序
一樣修改一下代碼,用python3運行,結果爲:
['1\n', '1\n', '2\n', '3\n', '4']
咱們再來看一看python3.7官方文檔:
對Windows平臺編輯的文件,在一樣平臺下的python2解釋器,在讀取文件時會將\r\n轉換成\n,但在linux平臺下的python2解釋器就不會。
對於python3而言,不論windows和linux平臺均會將特定的換行符轉換爲\n