블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

250x250
2023. 8. 2. 17:05 파이썬
728x90
반응형

 

모든 컴퓨터 시스템은 계산된 것을 저장하기 위해서 파일들을 사용한다. 파이썬은 파일을 생성하고 접근할 때 사용하는 기능들이 많이 제공한다. 모든 운영체제(윈도우나 맥)는 파일을 생성하고 접근하는 자기만의 파일 시스템을 갖고 있다. 파이썬은 파일핸들을 이용해서 파일을 접근한다 그렇기 때문에 파이썬은 운영체제에 종속되지 않고 독립적이다.

nameHandle = open('kids', 'w')

위 코드는 운영체제에게 kids라는 이름을 가진 파일을 생성하고 그 파일의 파일핸들을 반환하라고 지시한다. 

open 함수의 인수 'w'는 파일이 쓰기용임을 명시하는 것이다.

# 파일 쓰기
nameHandle = open('kids', 'w')
for i in range(2):
    name = input('Enter name: ')
    nameHandle.write(name + '\n')
nameHandle.close()

위의 코드는 파일을 먼저 열고 쓰기 방법을 사용하여 두 줄을 쓴 후에 파일을 닫는다. 

글자 입력

Enter name:  David
Enter name: Andrea

위와 같이 문자를 입력하면 생성된 kids파일안에 문자가 입력된 것을 볼 수 있다.

이제는 읽기용으로 인수 'r'을 사용해서 파일을 열고 그 내용을 출력해본다. 파이썬은 파일을 일련의 줄로 취급하기 때문에 for문을 사용하여 파일의 내용을 한 줄 씩 읽을 수 있다.

#파일 읽기
nameHandle = open('kids', 'r')
for line in nameHandle:
    print(line[:-1])
nameHandle.close()

파일에 David과 Andrea라는 이름이 입력되어 있다면 다음과 같이 출력된다. 

출력 결과 

David
Andrea

다음은 kids파일에 인수 'a'를 사용하여 문자 추가를 해볼 것이다.

#파일에 문자 추가하기
nameHandle = open('kids', 'a')
nameHandle.write('Michael\n')
nameHandle.write('Mark\n')
nameHandle.close()
nameHandle = open('kids', 'r')
for line in nameHandle:
    print(line[:-1])
nameHandle.close()

그러면 기존 이름 'David, Adrea'외 'Michae, Mark'가 추가 된 것을 볼 수 있다.

추가 된 이름

※ 다음은 파일을 다루는 기본적인 함수들이다.

open(fn, 'w') : 쓰기용으로 파일을 생성하고 파일핸들을 반환한다.

open(fn, 'r') : 읽기용으로 기존의 파일을 열고 파일핸들을 반환한다.

open(fn, 'a') : 이어쓰기로 기존의 파일을 열고 파일핸들을 반환한다.

fh.read() : 파일의 내용을 담고 있는 문자열과 이에 관련된 파일핸들 fh를 반환한다.

fh.readline() : 다음 줄과 이에 관련된 파일핸들 fh를 반환한다.

fh.readlines() : 각 줄의 목록과 이에 관련된 파일핸들 fh를 반환한다.

fh.write(s) 파일핸들 fh에 관련된 파일의 끝에 문자열 s를 쓴다.

fh.writeLines(S) : S는 일련의 문자열, 파일핸들 fh에 관련된 파일의 끝에 S에 있는 내용을 쓴다.

fh.close() : 파일핸들 fh에 관련된 파일을 닫는다.

728x90
반응형
posted by 조이키트 블로그