平台:OS X山狮
的Python 2.7.4的Python:在OS X
我有一段脚本,需要所有EOL字符转换将字符串中的UNIX风格\ n。 我得到一个由Qsci.Scintilla.text()提供的字符串,参考下面的txt。
print 'original text: %s' % repr(unicode(txt))
print 'linesep: %s' % repr(os.linesep)
print 'fixed text: %s' % repr(unicode(txt).replace(os.linesep, '\n'))
这说明像输出:
original text: u'exp.cnvs.show()\rself.sleep(1000)'
linesep: '\n'
fixed text: u'exp.cnvs.show()\rself.sleep(1000)'
所有EOL字符有报道\ r(这是OS X AF据我所知是正确的)。仍然os.linesep报告\ n是eol字符,导致底部语句不做任何事情。当然这种说法的输出应该是:
fixed text: u'exp.cnvs.show()\nself.sleep(1000)'
有谁知道为什么os.linesep似乎汇报OSX错了EOL字符?
好吧,这是有道理的。那么为什么Qscintilla仍然会以\ r作为换行符返回文本? –
@DanielS:也许这是Qscintilla中的一个错误? –
@丹尼尔斯:啊,斯蒂利亚相当过时; [我找到的文档](http://www.scintilla.org/ScintillaDoc.html#LineEndings)确实表明无论Mac OS版本如何,都使用'\ r'。将'SCI_SETEOLMODE'设置为'os.linesep'似乎是一个很好的解决方法。 –