파이썬에서 파일의 모든 줄을 읽고 각 줄을 목록의 요소로 저장하려면 어떻게합니까?
파일을 한 줄씩 읽고 각 줄을 목록 끝에 추가하고 싶습니다.
답변
with open(filename) as f:
content = f.readlines()
# you may also want to remove whitespace characters like `\n` at the end of each line
content = [x.strip() for x in content]
답변
입력 및 출력 참조 :
with open('filename') as f:
lines = f.readlines()
또는 개행 문자를 제거하여 :
with open('filename') as f:
lines = [line.rstrip() for line in f]
답변
이것은 필요 이상으로 명시 적이지만 원하는 것을 수행합니다.
with open("file.txt") as file_in:
lines = []
for line in file_in:
lines.append(line)
답변
이렇게하면 파일에서 “배열”라인이 생성됩니다.
lines = tuple(open(filename, 'r'))
open
반복 할 수있는 파일을 반환합니다. 파일을 반복 할 때 해당 파일에서 줄을 가져옵니다. tuple
주어진 반복자에서 반복자를 가져 와서 튜플 인스턴스를 인스턴스화 할 수 있습니다. lines
파일 라인에서 작성된 튜플입니다.
답변
\n
포함 하고 싶은 경우 :
with open(fname) as f:
content = f.readlines()
\n
포함 하지 않으려 는 경우 :
with open(fname) as f:
content = f.read().splitlines()
답변
Python의 Files of File Objects 에 따르면 텍스트 파일을 a로 변환하는 가장 간단한 방법 list
은 다음과 같습니다.
with open('file.txt') as f:
my_list = list(f)
텍스트 파일 행을 반복해야하는 경우 다음을 사용할 수 있습니다.
with open('file.txt') as f:
for line in f:
...
오래된 답변 :
사용 with
하여 readlines()
:
with open('file.txt') as f:
lines = f.readlines()
파일 닫기에 신경 쓰지 않으면이 단일 라이너가 작동합니다.
lines = open('file.txt').readlines()
전통적인 방법 :
f = open('file.txt') # Open file on read mode
lines = f.read().split("\n") # Create a list containing all lines
f.close() # Close file
답변
제안 된대로 간단하게 다음을 수행 할 수 있습니다.
with open('/your/path/file') as f:
my_lines = f.readlines()
이 방법에는 두 가지 단점이 있습니다.
1) 모든 라인을 메모리에 저장합니다. 일반적으로 이것은 매우 나쁜 생각입니다. 파일이 매우 커서 메모리가 부족할 수 있습니다. 크지 않더라도 단순히 메모리 낭비입니다.
2) 각 줄을 읽을 때 처리 할 수 없습니다. 따라서이 후에 행을 처리하면 효율적이지 않습니다 (하나가 아닌 두 개의 패스가 필요함).
일반적인 경우에 대한 더 나은 접근 방식은 다음과 같습니다.
with open('/your/path/file') as f:
for line in f:
process(line)
프로세스 기능을 원하는 방식으로 정의 할 수 있습니다. 예를 들면 다음과 같습니다.
def process(line):
if 'save the world' in line.lower():
superman.save_the_world()
( Superman
클래스 구현은 연습으로 남겨 두어야합니다).
이것은 모든 파일 크기에 잘 작동하며 1 패스로 파일을 통과합니다. 이것은 일반적으로 일반 파서가 작동하는 방식입니다.
