2012-10-03 81 views
1

可能重複:
get nth line of string in python讀取字符串x?

是否有一種方式來獲得從Python中的多行字符串指定行?例如:

>>> someString = 'Hello\nthere\npeople\nof\nEarth' 
>>> aNewString = someString.line(1) 
>>> print aNewString 
there 

我想作一個簡單的「解釋」的風格腳本,通過它美聯儲的文件的每一行循環。

+1

['str.split'](http://docs.python.org/library/stdtypes.html#str.split)和/或['str.splitlines']( http://docs.python.org/library/stdtype s.html#str.splitlines) –

+0

其實,如果你想做一個簡單的解釋器,你可能不希望首先得到一個充滿換行符的字符串。而不是'script = scriptfile.read(); ...;對於line in line:'只要在scriptfile:'中執行line就行了。 – abarnert

回答

4
>>> someString = 'Hello\nthere\npeople\nof\nEarth' 
>>> someList = someString.splitlines() 
>>> aNewString = someList[1] 
>>> print aNewString 
there 
+0

很酷。我很尷尬地說我不知道​​'splitlines'。謝謝。 –

+2

@JohnVinyard:那麼我猜你從來沒有在Unix上編寫代碼,然後不得不處理來自Windows用戶的錯誤?我首先在編寫代碼的時候發現它,如果存在的話,從每行的末尾刪除一個''\ r''然後編碼來處理一個罕見的情況,即在一行中有一個真正的'\ r'一個Unix文本文件...和... – abarnert

1
In [109]: someString = 'Hello\nthere\npeople\nof\nEarth' 

In [110]: someString.split("\n")[1] 
Out[110]: 'there' 

In [111]: lines=someString.split("\n") 

In [112]: lines 
Out[112]: ['Hello', 'there', 'people', 'of', 'Earth'] 
2

請記住,我們可以split串形成lists。在這種情況下,要使用換行符\n作爲分隔符來分割,所以是這樣的:

someString = 'Hello\nthere\npeople\nof\nEarth' 
print someString.split('\n')[lineindex] 

還有使用通用換行符作爲分隔符一個splitlines功能:

someString = 'Hello\nthere\npeople\nof\nEarth' 
print someString.splitlines()[lineindex] 
+2

'splitlines' does not _not_ automatically use''\ n'' as delimiter;它使用通用換行符。這就是使用它的重點。 – abarnert

+0

感謝您的提示 - 編輯。 – arshajii

+0

@abarnert所以它可以在任何平臺上使用任何編碼? – tkbx

2

斯普利特上換行符的字符串:

>>> someString = 'Hello\nthere\npeople\nof\nEarth' 
>>> someString.split('\n') 
['Hello', 'there', 'people', 'of', 'Earth'] 
>>> someString.split('\n')[1] 
'there'