python/python 기초

13. Python - 파일 읽기, 쓰기

Memory! 2022. 5. 11. 22:32
728x90
반응형

- open 명령어를 통해 파일을 생성 할 수 있습니다.

- open(파일명, option) 

- option 종류 

  • w : 쓰기 (write)
  • r : 읽기 (read)
  • a : 이어쓰기(append)

1. 파일 생성하기

 - f = open("파일이름", 'w'")

# 파일 생성하기
f = open("first_file.txt", 'w')
f.close()

- with open("파일이름", "w") 

- with open으로 파일 생성 시 파일.close()를 사용하지 않아도 됩니다. (with 문 내에서 사용 된 후 자동으로 close 됩니다)

# with open으로 파일 생성
with open("with_open.txt", "w"):
	pass

2. 파일 쓰기

- w 모드로 파일을 열고 write 명령어를 통해 파일에 작성 합니다.

f = open("first.txt", 'w', encoding='utf-8')
for i in range(1, 11):
    data = str(i) + "번째 줄\n"
    f.write(data)
f.close()

- file에 써진 내용 확인

1번째 줄
2번째 줄
3번째 줄
4번째 줄
5번째 줄
6번째 줄
7번째 줄
8번째 줄
9번째 줄
10번째 줄

3. 파일 읽기

- r 모드로 파일을 읽고 read, readline 명령어를 통해 파일에서 데이터를 읽어 옵니다.

# with open, r 모드로 파일 읽어오기
with open('first.txt', 'r', encoding='utf-8') as file:
    read_txt = file.read() # 파일 전체 읽기
print(read_txt)
# 출력 값들
1번째 줄
2번째 줄
3번째 줄
4번째 줄
5번째 줄
6번째 줄
7번째 줄
8번째 줄
9번째 줄
10번째 줄

- readline()은 파일의 한 라인씩 읽어 올 수 있습니다.

- readline()으로 모든 라인을 읽어오기 위해서는 반복문을 이용해서 읽어옵니다.

# readline()으로 파일 한줄 씩 읽어오기
with open('first.txt', 'r', encoding='utf-8') as file:
    read_txt = file.readline()
    print(read_txt)

# 출력
1번째 줄

# 반복문으로 모든 라인 읽어서 출력하기
with open('first.txt', 'r', encoding='utf-8') as file:
    while True:
        read_txt = file.readline() 
        if read_txt == '' : break
        print(read_txt)
        
# 출력
1번째 줄

2번째 줄

3번째 줄

4번째 줄

5번째 줄

6번째 줄

7번째 줄

8번째 줄

9번째 줄

10번째 줄

- readlines()를 사용하면 한줄 씩 읽어서 list에 담아 리턴해줍니다.

- list에 담겨있기 때문에 index로 접근해서 쉽게 사용이 가능합니다.

# readlines()로 모든 라인을 한줄 씩 읽어서 list에 리턴
with open('first.txt', 'r', encoding='utf-8') as file:
    read_txt = file.readlines() 
    print(read_txt)
    
# 출력
['1번째 줄\n', '2번째 줄\n', '3번째 줄\n', '4번째 줄\n', '5번째 줄\n', '6번째 줄\n', '7번째 줄\n', '8번째 줄\n', '9번째 줄\n', '10번째 줄\n']

# index로 접근
print(read_txt[0])
1번째 줄 # 출력

4. 파일에 내용 추가하기

- a 옵션으로 파일을 열면 맨 마지막줄에 추가로 출력할 수 있습니다.

with open('first.txt', 'a', encoding='utf-8') as file:
    file.write("11 번째 줄 추가")

- file 내용 확인 : "11번째 줄 추가"를 볼 수 있습니다.

1번째 줄
2번째 줄
3번째 줄
4번째 줄
5번째 줄
6번째 줄
7번째 줄
8번째 줄
9번째 줄
10번째 줄
11 번째 줄 추가

728x90
반응형