파일에서 라인의 목록을 얻을 수있는 가장 쉬운 방법은 귀하의 질문에 대한 답변이 확실하지 않습니다. 귀하가 더 구체적인 것을 염두에두면 알려주십시오. 난 당신이 무엇을 요구 정확히을 이해하지 않기 때문에
, 여기에 텍스트 파일을 처리하는 방법의 몇 가지 예입니다. 인터프리터 인터프리터에서 이것을 실험해볼 수 있습니다. 인터프리터 인터프리터는 일반적으로 명령 줄에 'python'을 입력하여 액세스 할 수 있습니다.
>>> with open('a_text_file.txt', 'r') as f:
... text = f.read()
...
>>> text
'the first line of the text file\nthe second line -- broken by a symbol\nthe third line of the text file\nsome other data\n'
원시 처리되지 않은 텍스트 파일입니다. 그것은 문자열입니다. 문자열은 변경할 수 없으며 변경할 수 없지만 일부 또는 전체를 복사 할 수 있습니다.
>>> text.splitlines()
['the first line of the text file', 'the second line -- broken by a symbol', 'the third line of the text file', 'some other data']
splitlines
은 문자열 방법입니다. splitlines
은 \n
(개행) 문자가있는 모든 위치에서 문자열을 나눕니다. 그런 다음 문자열의 개별 섹션 사본을 포함하는 목록을 반환합니다.
>>> lines = text.splitlines()
이제 위의 행 목록을 새로운 변수 이름에 저장했습니다.
>>> lines[0]
'the first line of the text file'
목록에는 색인을 생성하여 액세스 할 수 있습니다. 0
에서 len(lines) - 1
까지 정수를 제공하면 해당 줄이 반환됩니다.
>>> lines[2]
'the third line of the text file'
>>> lines[1]
'the second line -- broken by a symbol'
이제 개별 선을 조작 할 수 있습니다.
>>> lines[1].split('--')
['the second line ', ' broken by a symbol']
split
은 다른 문자열 방법입니다. splitlines
과 같지만 분리기로 사용할 문자 또는 문자열을 지정할 수 있습니다.
>>> lines[1][4]
's'
문자열의 문자를 색인화 할 수도 있습니다.
>>> lines[1][4:10]
'second'
문자열을 "분할"할 수도 있습니다. 결과는 4 - 9 자의 사본입니다. 10은 정지 값이므로 10 번째 문자는 슬라이스에 포함되지 않습니다. (당신은 너무 목록을 슬라이스 수 있습니다.)
>>> lines[1].index('broken')
19
당신이 문자열 내에서 문자열을 찾으려면 한 가지 방법은 index
을 사용하는 것입니다. 하위 문자열이 처음 나타나는 인덱스를 반환합니다. (문자열은 문자열에없는 경우 오류가 발생합니다. 당신이이 -1 문자열이 문자열에없는 경우. 반환 find
, 사용하지 않을 경우) 다음
>>> lines[1][19:]
'broken by a symbol'
을 그것을 사용하여 문자열을 조각 낼 수 있습니다. 중지 인덱스를 제공하지 않으면 문자열의 나머지 부분 만 반환합니다.
>>> lines[1][:19]
'the second line -- '
시작 색인을 제공하지 않으면 문자열의 시작 부분을 반환하고 중지 색인에서 중지합니다.
>>> [line for line in text.splitlines() if 'line' in line]
['the first line of the text file', 'the second line -- broken by a symbol', 'the third line of the text file']
또한 in
을 사용할 수 있습니다 - 그것은 문자열이 문자열에있는 경우 True
를 반환하는 부울 연산입니다. 이 경우에는 목록 내 용을 사용하여 'line'
행만 가져옵니다. (마지막 줄이 목록에서 누락되었습니다. 필터가 걸렸습니다.)
질문이 있으면 알려주십시오.
그리고 나는 http://docs.python.org/tutorial/datastructures.html#more-on-lists을 읽을 것을 권합니다. – SteveMc
이것은 많은 도움이됩니다! 그러나 라인의 일부만 선택하는 방법이 있습니까? –
sooo 많은 감사합니다! 나는 upvote를 받아들이는 방법을 모르겠다. 그 웹 사이트는 계속 포인트를 가지고 있지 않다고 말하고있다. –