Python 파일입출력

Jayce_97·2023년 5월 9일
0

Python 기초

목록 보기
7/10
post-thumbnail

오늘은 Python을 이용하여 파일을 오픈, 저장, 읽기, 쓰기에 대해서 공부하도록 하겠습니다.
파일 입출력은 설명보다 직접 보는 것이 이해가 빠르기 때문에 바로 코드를 보겠습니다.


파일쓰기(write)

input

# w 쓰기모드로 파일 오픈
f=open('d:/data/source/file3.txt','w') #위치는 원하는 곳을 설정
for i in range(1,11):
    data=f'{i}번째 줄입니다.\n'
    f.write(data) #파일에 저장
f.close()    #파일 닫기 

output
f는 file이라는 의미의 변수입니다. 알기 쉽게 원하시는 변수로 설정하시면 됩니다.
open함수를 이용하여 파일을 오픈할 수 있습니다. 인자값에 w를 입력하게 되면 write(쓰기)모드로 오픈이 됩니다.
배열함수에서 배운 range를 이용하여 "1~10번째 줄입니다"를 data변수에 넣어줍니다.
write함수는 [변수1].write([변수2]) 변수1에 변수2의 값을 넣어는 역할을 수행합니다.
마지막으로 파일을 닫아주면 됩니다.
저와 같이 작성 하셨다면 d:/data/source/라는 디렉토리에 file3.txt라는 파일을 만들어지셨을 겁니다.

주의 직접 d:/data/source/폴더를 만드셔야 오류가 나지 않습니다. c:/ 또는 d:/에 원하시는 폴더를 만드신 후 파일이름을 작성하시면 됩니다.


파일을 썼다면 읽는 방법도 알아야합니다.

파일읽기(read)

input

f=open('d:/data/source/file3.txt','r') # r 읽기모드로 파일 오픈
while True:
    line=f.readline() #한 라인을 읽음
    if not line: break  # 빈값이면 반복문 종료 
    print(line,end='') # end='' 줄바꿈문자를 사용하지 않음 
f.close()  

output

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

직접 디렉토리에 가서 txt 파일을 열어확인하면 해당내용이 똑같이 들어있음을 확인 할 수있습니다.

print()함수의 마지막에 end='' or end'\n'와 같은 방법으로 마지막 줄을 설정하실 수 있습니다.

CSV파일 생성(append,write)

input

nums=list(range(10)) # 0~9를 리스트로 생성
print(nums)
cnt=len(nums) # len() 데이터 개수 
output_file='d:/data/source/result.csv'
f=open(output_file,'a') # append 끝에 추가 
for idx in range(cnt):
    if idx<(cnt-1): #마지막 필드가 아니면 컴머 추가
        f.write(str(nums[idx])+',') # 숫자+문자열 에러 방지를 위해 str() 사용 
    else: #마지막 필드이면 \n 추가 
        f.write(str(nums[idx])+'\n')
f.close()
print('저장되었습니다.')    

output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
저장되었습니다.

txt 뿐만아니라 csv등 여러가지 파일로도 만들 수 있습니다.


CSV파일(read)

input

f=open('d:/data/source/result.csv') # r 읽기모드로 파일 오픈
while True:
    line=f.readline() #한 라인을 읽음
    if not line: break  # 빈값이면 반복문 종료 
    print(line,end='') # end='' 줄바꿈문자를 사용하지 않음 
f.close() 

output

0,1,2,3,4,5,6,7,8,9

append를 이용하여 작성하시게 될경우 프로그램을 실행시킬 때마다 뒤에 값이 생성되는 것도 확인 가능합니다.


리스트로 저장하기

input

f=open('d:/data/source/file3.txt')
lines=f.readlines() #모든 라인들을 리스트로 저장
print(lines)

for line in lines: 
    print(line,end='')
f.close() 

output

['1번째 줄입니다.\n', '2번째 줄입니다.\n', '3번째 줄입니다.\n', '4번째 줄입니다.\n', '5번째 줄입니다.\n', '6번째 줄입니다.\n', '7번째 줄입니다.\n', '8번째 줄입니다.\n', '9번째 줄입니다.\n', '10번째 줄입니다.\n']
1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.

파일을 리스트로 저장도 가능할 뿐만아니라


파일을 변수로 저장하기

input

f=open('d:/data/source/file3.txt')
data=f.read() # 파일 전체 내용을 변수 1개로 저장 
print(type(data))
print(data)
f.close()

output

<class 'str'>
1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.

변수로도 저장이 가능합니다.


오늘은 파일 입출력에 대해 배워 보았습니다. 다음시간에는 예외처리에 대해 배우도록 하겠습니다.
그럼 오늘도 읽으시느라 고생많으셨습니다.

😁 power through to the end 😁

profile
Dreamer

0개의 댓글