[python] 파일 입출력

Cjw.dev·2023년 3월 15일
0

Python

목록 보기
7/7

파일을 통한 입출력 진행해보기

open : 파일을 생성하거나 열때 사용하는 함수
close : 파일을 닫을 때 사용하는 함수


파일 입출력 코드 작성

변수 = open("파일경로/파일명", "파일모드")
파일모드 : 파일을 읽기, 쓰기, 추가시 사용하는 모드
r : 읽기만 할 때 사용하는 모드
w : 파일에 내용을 작성할 때 사용하는 모드
a : 파일에 새로운 내용을 추가할 때 사용하는 코드

경로를 지정하여 파일 만들기
기존경로 : 현재 IDE의 위치
하지만 경로를 직접 입력함으로써 파일 생성의 위치를 조정할 수 있다.


생성 코드 작성 예제

// 파일경로 설정하여 txt파일 생성
# f = open("C:/nuclear/testFileName.txt", "w")
# f.close()

파일 입출력 예제

quiz.txt라는 파일을 파이썬 코드로 생성하고

다음의 내용 또한 파이썬 코드를 이용해서 생성해보세요
1번쨰 내용입니다.
2번째 내용입니다.
3번째 내용입니다.
:
:
10번째 내용입니다.

f = open("C:/nuclear/quiz.txt", "w")
i = 0
while i<10:
    i+=1
    f.write("{}번째 내용입니다.\n".format(i))
f.close()

예제2

파일순환2.txt라는 파일을 생성하고 해당파일에
다음의 조건을 맞춰 문장을 추가해보세요
나는 n번째 문자를 찍고있다를 50회 출력
ex) 나는 1번째 문자를 찍고있다.
나는 2번째 문자를 찍고있다.
나는 3번째 문자를 찍고있다.
나는 4의 배수다!
나는 5번째 문자를 찍고있다.
:
:
나는 50번째 문자를 찍고있다.

f2 = open("C:/nuclear/파일순환6.txt", "w")
j=0
while j < 50:
    j+=1
    if j%4==0:
        f2.write("나는 4의 배수다({})\n".format(j))
    f2.write("나는 {}번째 문자를 찍고있다\n".format(j))
f2.close()   

외부 파일을 읽어오는 것도 가능하다

외부의 파일읽기
readline, readlines, read

# readline : 파일에서 첫 라인을 읽어 들이는 함수
f = open("C:/nuclear/quiz.txt", "r")
result = f.readline()
print(result)
f.close

# readlines : 파일의 모든 라인을 읽어서 각각의 라인을 요소로 판단해 리스트로 리턴하는 함수. 추후 가공을 위해 사용
f = open("C:/nuclear/quiz.txt", "r")
result = f.readlines()
print(result)
f.close

# read : 파일 전체의 내용을 문자열 그대로 리턴하는 함수.
f = open("C:/nuclear/quiz.txt", "r")
result = f.read()
print(result)
f.close

with

파일을 열기 닫기를 자동으로 처리해주는 키워드.
a : 파일에 내용을 추가 // 파일 확장자 .csv 필수

with 를 사용하여 csv 파일을 생성하고 안에 내용을 작성해보자.

with open("C:/nuclear/withKEYWORD.csv", 'w') as f:
    for i in range(1,6):
        f.write("테스트{}\n".format(i))

csv 가공하기 / 파일 입출력 한번에 정리하기

CSV(Comma Separated Values)란?

데이터 목록이 포함된 일반 텍스트 파일
다른 응용프로그램간 데이터 교환시 사용
쉼표로 구분된 파일이나 문자로 구분된 값이라고 부르기도 함
대부분 쉼표로 문자의 내용을 구분. but 세미콜론으로 구분하는 경우도 존재

사용 예제

list2 = [["쿵푸팬더", "개미래퍼", "댄스왕황룡", "진영장군", "타이슨", "가위손"], 
         ["바다의 왕자", "지혜겅듀", "수아레즈"]]

import csv # csv 모듈 임포트

with open("C:/nuclear/withKEYWORD.csv", 'a') as f:
    write = csv.writer(f)
    write.writerows(list2)
    
# writerow : 리스트(list) 사이에 콤마(,)를 기준으로 한 셀(cell)에 한 리스트를 전부 기록
# writeros : 리스트 내부의 콤마를 기준으로 각 셀에 각 요소를 입력(리스트 사이의 ,를 개행으로 인식)

사용 예제 2

with open("C:/nuclear/withKEYWORD.csv", 'r', encoding='cp949') as f:  
    readfile = csv.reader(f)
    for i in readfile:
        print(i)
        
# encoding = 'cp949' : 한글 깨질 때 사용
profile
백엔드 개발 공부 기록 22.11.07 ~ ing

0개의 댓글