平臺: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'似乎是一個很好的解決方法。 –