본문 바로가기

Programming languages/Python

8. Files

728x90
반응형

이번엔 파이썬상에서 txt 파일을 다루는 것을 공부해 볼 것이다. 

 

f = open("new.txt",'w')
for i in range (1,11):
    data = f"{i}번째 줄입니다.\n"
    f.write(data)
f.close()

위 프로그램은 f라는 변수에 txt파일을 만들고 열고 반복문을 적으라는 의미이다.

변수 = open("파일명.txt", '파일 열기 모드')

변수. close() 이렇게 만든다.

 

파일 열기 모드에 대한 설명은 아래와 같다.

r 읽기모드 - 파일을 읽기만 할 때 사용
w 쓰기모드 - 파일에 내용을 쓸 때 사용
a 추가모드 - 파일의 마지막에 새로운 내용을 추가 시킬 때 사용

for문을 통해서 반복문을 만들었다.

data에 입력되는 값을 write() 함수를 통해서 new.txt에 적는다.

변수. close()를 통해서 열려있는 파일 객체를 닫아주는 것으로 끝낸다.

프로젝트가 있는 폴더의 위치에 new.txt가 생성됐을 것이다.

("C:/doit/새 파일. txt" 이처럼 경로를 지정해서 텍스트 파일을 만들 수 도 있다.)

이를 열어보면 다음과 같다.

 

1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.

 

f = open("new.txt",'r') #파일 객체 읽기모드로 열기
while True: #항상 참
    line = f.readline() #readline() 함수를 통해서 파일객체의 정보 읽어오기
    if not line : break #더 이상 읽을 줄 이 없다면 멈추기
    print(line)
f.close #파일 객체 닫아주기

위처럼 readline() 함수를 이용해서 txt 파일의 내용을 읽어오는 것도 가능하다.

if not line : break라는 직관 적인 기능도 이용 가능하다.

f.close()를 통해 파일을 닫는 것을 잊지 말자.

 

while True:
    data = input("자료를 입력하세요: ") #데이터 입력 받기
    if not data:break #더 이상 읽을 데이터가 없으면 탈출, 사실 해당문장이 없어도 잘 작동한다. 
    print(data)

이런 식으로 사용도 가능하다.  readline() 함수 대신에 input()을 사용한다.

 

f = open('new.txt','r')
lines = f.readlines() #파일안의 요소들을 리스트 형식으로 lines에 전달함
for line in lines:
    line = line.strip()  # 줄 끝의 줄 바꿈 문자를 제거한다.
    print(line)
f.close()

위처럼 readlines() 함수를 사용하면 txt안의 값들을 lines변수에 list로 저장할 수 있다.

line.strip() 함수를 이용하면 줄 바꿈도 없앨 수 있다.

 

f = open('new.txt','r')
data = f.read() #파일 내용 전체를 문자열로 반환
print(data)
f.close()

위처럼도 가능하다. read()를 사용하면 한 줄씩 읽어 오는 게 아니라 내용 전체를 문자열로 반환시키는 것이다.

 

f = open('new.txt','a') #기존내용에 새로운 내용 add
for i in range(11,20):
    data = f"{i}번째 줄입니다.\n"
    f.write(data)
f.close()

print(f.read())

이런 식으로 'a'를 사용해서 텍스트 파일의 기존 내용에 변형을 가하지 않고 내용을 추가할 수 있다.

728x90
반응형

'Programming languages > Python' 카테고리의 다른 글

9. Class  (0) 2021.12.14
Examples) Chapter4  (0) 2021.12.12
7. Input&Print  (0) 2021.12.10
6. Function  (0) 2021.12.10
Examples) Chapter 3  (0) 2021.12.09