Programing

파일의 첫 줄만 읽습니까?

lottogame 2020. 5. 22. 08:05
반응형

파일의 첫 줄만 읽습니까?


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


.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줄 끝에 문자가 포함되지 않지만 어쨌든 원하지 않는다고 가정합니다 (한 줄 파일에는 없을 수도 있음). 또한 짧고 빠르지 만 데이터의 복사본을 만들므로 실제로 큰 메모리가 필요한 경우 "효율적인"것으로 간주하지 않을 수 있습니다. 항상 그렇듯이 그것은 ...


해결책 1 :

with open('input_file.txt') as input_file:
    lines=input_file.readlines()
    for line_no, line in enumerate(lines):
        if line_no == 0:
            print(line)
            break
  • lines 에서 모든 라인을 포함 input_file.txt
  • line_no파일에서 줄 번호를 줄 것입니다
  • (가) 경우 line_no0 인덱스는 0부터 시작, 제 라인이 인쇄 될
  • 마찬가지로 두 번째 줄을 원한다면 쓸 수 있습니다 if line_no==1

해결책 2 :

with open('input_file.txt') as input_file:
    lines=input_file.readlines()
    first_line=lines[0]
    print(first_line)
  • lines[0] 첫 번째 줄입니다.
  • 마찬가지로 lines[1]두 번째 줄입니다

해결책 3 :

N줄을 인쇄하십시오 . N임의의 숫자로 교체하십시오 . 첫 줄을 원하면 N = 1

from itertools import islice

with open('my_file.txt','r') as my_file:
    head = list(islice(my_file, N))
    print(head)

이것은 유닉스 명령의 동등한 코드입니다 head

해결책 4 :

with open('input.txt', 'r') as fin:
    head, tail = fin.read().split('\n', 1)
    print(head)
    #print(tail)

f1 = open("input1.txt", "r")
print(f1.readline())

참고 URL : https://stackoverflow.com/questions/1904394/read-only-the-first-line-of-a-file

반응형