[python] 파일의 첫 줄만 읽습니까?

파이썬에서 파일의 첫 줄만 문자열로 어떻게 얻을 수 있습니까?



답변

.readline()방법을 사용하십시오 ( Python 2 docs , Python 3 docs ).

with open('myfile.txt') as f:
    first_line = f.readline()

몇 가지 참고 사항 :

  1. 문서에서 언급했듯이 파일의 유일한 줄이 아니라면 반환 된 문자열 f.readline()에는 줄 바꿈 문자가 포함됩니다. f.readline().strip()줄 바꿈을 제거 하기 위해 대신 사용할 수 있습니다 .
  2. with문은 자동으로 다시 때 블록의 끝을 파일을 닫습니다.
  3. with문장은 Python 2.5 이상에서만 작동하며 Python 2.5에서는 사용해야합니다.from __future__ import with_statement
  4. Python 3에서는 열려는 파일의 파일 인코딩을 지정해야합니다. 더 읽어보기 …

답변

infile = open('filename.txt', 'r')
firstLine = infile.readline()


답변

fline=open("myfile").readline().rstrip()


답변

이것은해야합니다 :

f = open('myfile.txt')
first = f.readline()


답변

열린 파일의 시작 부분으로 돌아가서 첫 번째 줄을 반환하려면 다음과 같이하십시오.

my_file.seek(0)
first_line = my_file.readline()


답변

first_line = next(open(filename))


답변

여기에 많은 다른 대답이 있지만 @MarkAmery가 원래 질문을 편집하고 의미를 변경하기 전에 요청한 질문에 정확하게 대답 합니다 .

>>> f = open('myfile.txt')
>>> data = f.read()
>>> # I'm assuming you had the above before asking the question
>>> first_line = data.split('\n', 1)[0]

즉, 이미 파일에서 읽었고 메모리에 큰 데이터 블록이 있으면 첫 번째 줄을 효율적으로 얻으려면 줄 바꿈 문자에서 split ()을 한 번 수행하십시오. 결과 목록에서 첫 번째 요소를 가져옵니다.

여기에는 \n줄 끝에 문자가 포함되지 않지만 어쨌든 원하지 않는다고 가정합니다 (한 줄 파일에는 없을 수도 있음). 또한 매우 짧고 빠르지 만 데이터의 사본을 만들므로 실제로 많은 메모리가있는 경우이를 “효율적인”것으로 간주하지 않을 수 있습니다. 항상 그렇듯이 그것은 …