我希望我的代码可以在MacOS和Windows中定期编写文本,所以我希望这个脚本具有模式U的功能,同时具有w +的功能。
我应该怎么处理file.open()中的mode参数?
答案 0 :(得分:2)
不支持以通用换行模式写入。来自the PEP:
对于具有不同的文件输出没有特殊支持 换行约定,所以模式“wU”也是非法的。
和
没有通用换行符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换行符。
修改:只要您关闭b
,就会显示Python actually offers platform-specific newline output by default anyway。
...默认情况下使用文本模式,可以在写入时将“\ n”字符转换为特定于平台的表示,然后在阅读时返回。