2012-10-03 5 views
1

가능한 중복 :
get nth line of string in python문자열 x의 문자열을 읽으시겠습니까?

는 파이썬에서 여러 줄 문자열에서 지정된 행을 얻을 수있는 방법이 있나요? 예를 들면 :

>>> someString = 'Hello\nthere\npeople\nof\nEarth' 
>>> aNewString = someString.line(1) 
>>> print aNewString 
there 
내가이 공급됩니다 파일의 모든 라인을 통해 루프, 간단한 "인터프리터"스타일 스크립트를하고 싶습니다

. 우리가 split 문자열 lists를 형성 할 수

+1

['str.split' (http://docs.python.org/library/stdtypes.html#str.split) 및/또는'str.splitlines' (http://docs.python.org/library/stdtype sghtml # str.splitlines) –

+0

사실, 간단한 인터프리터를 만들고 싶다면 처음에는 개행 문자로 가득 찬 문자열을 얻고 싶지 않을 것입니다. 대신'script = scriptfile.read(); ...; line in line : scriptfile :'에''do'을 입력하십시오. – 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'이있는 드문 경우를 처리하도록 코드를 작성합니다. 유닉스 텍스트 파일 ... 그리고 ... – 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

는 것을 기억하십시오. 이 경우, 당신은 당신의 구분 기호로 개행 문자 \n를 사용하여 분할 할, 그래서 이런 일이 :

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

'splitlines'은'\ n '을 자동으로 구분 기호로 사용하지 않습니다; 보편적 인 개행 문자를 사용합니다. 그것은 대신 그것을 사용하는 요점입니다. – abarnert

+0

팁 주셔서 감사합니다. – arshajii

+0

@abarnert 그래서 모든 플랫폼에서 모든 인코딩 작업이 가능합니까? – tkbx

2

분할 :

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

또한 구분 기호로 보편적 인 줄 바꿈을 사용하는 splitlines 기능이 있습니다 바꿈에 문자열 :

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