본문 바로가기
Codeit/프로그래밍 기초 in Python

파이썬 응용하기 / 파일 읽고 쓰기

by 에파 2021. 3. 26.
728x90

 

파이썬 응용하기 / 파일 읽고 쓰기

 

 

('test.txt' 파일)

test1

test2

test3

 

with open('test.txt', 'r') as f:
    print(type(f))
    for line in f:
        print(line)

#<Run>
#<class '_io.TextIOWrapper'>
#test1
#
#test2
#
#test3
#

파일 읽기

 

with open('파일명', 'r') as f : 해당 파일의 읽기를 변수 f 에 저장한다.

(r : read, f : 변수이름)

 

'파일명' 은 해당 파일의 경로를 지정해줘야한다.

Ex) 'data/test.txt'


print("  \t  abc      def       \n\n".strip())

#<Run>
#abc      def

strip

 

위의 파일 읽기의 출력값을 보면 파일의 \n 때문에 라인 공백이 생기는데 strip 을 이용하여 해결할 수 있다.

문자열을 기준으로 좌우 공백을 모두 없앤다. 문자열간의 공백(사이)은 없애지 않는다.


my_string = "1. 2. 3. 4. 5. 6"
number = my_string.split(". ")
print(my_string.split(". "))
print(number[0])


#<Run>
#['1', '2', '3', '4', '5', '6']
#1

split

 

문자열을 짤라서 배열로 값을 저장한다. 짜르는 기준 문자열을 지정해야한다.


print("    \n\n  2  \t  3  \n  5 7 11  \n\n".split())

#<Run>
#['2', '3', '5', '7', '11']

split 팁

 

짜르는 기준 문자열이 보이지 않을때 파라미터를 공백으로 주면 화이트 스페이스(공백)를 제외한 문자열만 배열의 원소로 리턴한다.

 

또, 주의할 점은 split 함수로 리턴된 배열들의 값은 string 이므로 integer 같은 값을 원하는 경우 형변환 과정을 거쳐야한다.


with open('new_file.txt', 'w') as f:
    f.write("Hello world!\n")
    f.write("My name is Codeit.\n")
    
#<Run>
#(new_file.txt 파일내용)
#Hello world!
#My name is Codeit.
#

파일 쓰기

 

해당 구문을 실행할때마다 "Hello world!\n", "My name is Codeit.\n" 이 실행되지만 여러번 실행해도 파일은 2줄(공백포함 3줄)에서 더 늘어나지 않는다. 이유는 'w' 때문인데 'a' 로 작성하면 기존에 내용을 추가한다.

 

댓글