我希望我的代碼可以在MacOS和Windows中定期編寫文本,所以我希望這個腳本具有模式U的功能,同時具有w +的功能。如何在U模式和w +模式下寫入文件?
我該怎麼處理file.open()中的mode參數?
我希望我的代碼可以在MacOS和Windows中定期編寫文本,所以我希望這個腳本具有模式U的功能,同時具有w +的功能。如何在U模式和w +模式下寫入文件?
我該怎麼處理file.open()中的mode參數?
不支持以通用換行模式寫入。從the PEP:
有輸出與不同的 換行符會議文件等方式「武」也是非法的沒有什麼特別的支持。
和
,人們在新行的無輸出實現,Python的 方案預期由自己來處理這個或以其他方式寫入文件 與平臺的本地約定。這是因爲輸入是 是困難的情況,對於 輸出不同的換行符在Python中已經足夠容易了。
這實際上是在通過錯誤暗示返回當您嘗試Uw+
:
ValueError: universal newline mode can only be used with modes starting with 'r'
注意Ur+
沒有失敗,但它也沒有做任何書面替代;我可以在我的Mac上執行f.write('test\r\n')
(OS X使用Unix換行符),並且Windows換行符出現在我的文件中。
編輯:看起來,Python actually offers platform-specific newline output by default anyway,只要你離開b
關閉。
...默認情況下,使用文本模式,它可以在寫入時將'\ n'字符轉換爲特定於平臺的表示並返回讀取。
所以「Uw +」模式不適合你? – martineau
歡迎來到Stack Overflow!我們鼓勵你[研究你的問題](http://stackoverflow.com/questions/how-to-ask)。如果你已經[嘗試了某些東西](http://whathaveyoutried.com/),請將其添加到問題中 - 如果沒有,請先研究並嘗試您的問題,然後再回來。 – 2012-09-27 16:04:13