ファイルを書き込み、Linux、Windows、およびおそらく osx で実行する必要がある python(2.7) スクリプトを作成しています。残念ながら、互換性の問題のため、Windows スタイルではキャリッジ リターンとライン フィードを使用する必要があります。私が仮定しても大丈夫ですか:
str = someFunc.returnA_longText()
with open('file','w') as f:
if os.name == 'posix':
f.write(str.replace('\n','\r\n'))
elif os.name == 'nt'
f.write(str)
私は他人に配慮する必要がありますか?os.name には他の選択肢があります ('posix'、'nt'、'os2'、'ce'、'java'、'riscos')。代わりにプラットフォーム モジュールを使用する必要がありますか?
更新 1:
目標は、任意の OS で '\r\n' を使用することです。
私はからstrを受け取っています
str = etree.tostring(root, pretty_print=True, xml_declaration=True, encoding='UTF-8')
私はファイルを読んでいません。
3. 私のせいです。代わりに os.linesep を確認する必要がありますか?