일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- burpsuite
- Unable to create a new virtual machine: No permission to perform this operation.
- aws 자격증 접수 오류
- 버프슈트
- Default 삭제
- Default 생성
- pam_tally -u
- AWS
- i-node full
- AWS 시험후기
- rm -f
- 리눅스 telnet
- 장치에 남은 공간이 없음
- 모바엑스텀 설치
- ln -Tfs
- uptime -V
- 프리티어 비용 발생
- Burp Suite
- 패키지 출력
- root로그인안됨
- uptime -p
- histoy옵션
- 버프스위트
- HISTTIMEFORMAT
- pam_tally -u -r
- pam_tally2.so
- Default vpc
- CentOS-Base.repo
- svn: Can't find a temporary directory: Internal error
- uptime -s
- Yesterday
- Today
- Total
14. 파이썬(Python) 파일 다루기(파일 읽기, 쓰기, 추가하기) 본문
파이썬 파일 다루기
파이썬은 파일을 다룰 때 파일 읽기와 쓰기로 나뉩니다. 파일로부터 데이터를 읽거나 프로그램에서 결과 값을 파일로 저장을 할 수 있으면 학사관리 프로그램을 만드는데 유용할 것입니다.
파일이란?
글자들, 숫자들, 특수 문자들의 집합체입니다. 한글 파일(hwp), 워드 파일(doc), 엑셀파일(excel) 등입니다. 문서 파일 외에도 동영상 파일(.avi), 음악 파일(.mp3)등 다양한 부분에서 파일이란 용어를 사용하고 있습니다.
1. 파일 생성하기
파일을 생성하기 위해서는 open이라는 내장 함수를 사용해야 합니다. open 함수는 아래와 같이 만들 수 있습니다.
<사용 방법>
파일 객체 = open(파일 이름 or 경로 + 이름, 파일 열기 모드)
파일을 생성해보도록 하겠습니다.
f = open(“test.txt”, ‘w’)
f.close()
프로그램을 실행한 디렉터리에 새로운 파일(test.txt)이 생성된 것을 확인할 수 있습니다.
파일 열기 모드 종류
모드 | 설명 |
r | 읽기 모드 : 파일을 읽기만 할 때 사용(파일이 없으면 에러) |
r+ | 읽기 or 쓰기 모드 : 파일이 없으면 에러 |
w | 쓰기 모드 : 파일에 내용을 입력할 때 사용(파일이 없으면 생성) |
w+ | 읽기 or 쓰기 모드 : 파일이 없으면 생성 |
a | 추가 모드 : 파일의 마지막에 새로운 내용을 추가할 때 사용(파일이 없으면 생성) |
a+ | 읽기 or 추가 모드 : 파일이 없으면 생성 |
* +는 각자 조금 다른 작업을 합니다.
w+ : 기존 파일에 있던 데이터를 완전 지우고 새로 내용을 입력합니다.
r+ : 기존 파일에 있던 데이터를 그대로 두고 그 위에 내용을 덮어씁니다.
a+ : 기존 파일에 있던 데이터를 그대로 두고 마지막에 내용을 입력합니다.
2. 파일 쓰기 [f.write() 사용하기]
파일 쓰기 모드로 열 때 파일이 생성됩니다. 파일 안에는 아무 내용이 없습니다. 그 안에 내용을 채우기 위해서는 write()를 사용하면 됩니다.
>>> f = open("test.txt", "w")
>>> f.write("Hello Python!\n")
13
>>> f.write("Bye Python!")
12
>>> f.close()
두 문장을 사용했는데 문장의 가속성을 위해서 줄 바꿈 기호(“\n”)를 사용했습니다. 파일에 내용을 다 썼다면 f.close()를 사용해서 파일을 닫아 주면 됩니다. 파일을 닫아 주지 않으면 내용이 저장되지 않습니다.
3. 파일 읽기 [f.read() 사용하기]
파일 읽기 모드로 열 때는 파일이 존재해야 됩니다. 그렇지 않다면 에러를 발생시킵니다.
>>> f = open("test1.txt" ,"r")
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
f = open("test1.txt" ,"r")
FileNotFoundError: [Errno 2] No such file or directory: 'test1.txt’
위와 같이 에러를 발생 시킵니다.
3_1. 파일 읽기1 (read)
>>> f = open("test.txt" ,"r")
>>> f.read()
'Hello Python!\nBye Python!‘
read() 함수는 줄 바꿈 없는 문자열을 반환합니다.
3_2. 줄 바꿈 하는 법 (read)
>>> f = open("test.txt" ,"r")
>>> read = f.read()
>>> print(read)
Hello Python!
Bye Python!
변수를 하나 생성해서 print()를 이용해서 출력하면 됩니다.
3_3. 리스트로 받는 법 (split)
>>> f = open("test.txt", "r")
>>> read = f.read()
>>> split = read.split()
>>> print(split)
['Hello', 'Python!', 'Bye', 'Python!']
>>> split
['Hello', 'Python!', 'Bye', 'Python!']
split()를 통해서 문자열을 리스트로 받을 수 있습니다.
3_4. 파일 읽기2 (readline)
>>> f = open("test.txt", "r")
>>> line = f.readline()
>>> print(line)
Hello Python!
readline은 파일의 첫 번째 줄을 출력합니다.
3_5. readline 활용법1
>>> f = open("test.txt", "r")
>>> while True:
line = f.readline()
if not line: # 더 이상 읽을게 없다면
break # 끝내라
print(line)
Hello Python!
Bye Python!
>>> f.close()
while문을 이용해 무한 루프를 만들었습니다. readline이 한 줄 씩 내용을 읽다가 아무것도 없을 때 braek문을 이용해 반복문을 빠져나옵니다.
3_6. readline 활용법2(자동 줄 바꿈 해제)
>>> f = open("test.txt", "r")
>>> while True:
line = f.readline()
if not line:
break
print(line, end ="")
Hello Python!
Bye Python!
>>> f.close()
print에서 end =“”문장을 넣어 두면 자동 줄 바꿈을 안하게 됩니다.
3_7. readlines 활용법
readlines는 readline에서 s가 하나 더 붙은 형태입니다.
>>> f = open("test.txt", "r")
>>> while True:
lines = f.readlines()
if not lines :
break
print(lines)
['Hello Python!\n', 'Bye Python!']
>>> f.close()
readlines는 파일의 모든 라인을 읽어서 한 줄씩 리스트로 리턴 합니다.
4. 파일에 새로운 내용 추가하기
쓰기모드(‘w’)로 파일을 열 때 이미 존재하는 파일을 열 경우에 그 파일의 내용이 다 사라지고 새로 써지게 됩니다. 원래 내용을 유지하고 새로운 내용만 추가 할 때 에는 추가모드(‘a’)를 사용합니다.
추가모드(‘a’)사용 하기
>>> f = open("test.txt", "a")
>>> f.write("\nUpdate Python")
14
>>> f.close()
파일을 열고 내용을 추가하고 파일을 닫았습니다.
f.close()를 사용하는 이유는 파일을 닫아야 저장되기 때문입니다.
내용이 잘 추가 되었는지 확인해 보겠습니다.
>>> f = open("test.txt", "r")
>>> read = f.read()
>>> print(read)
Hello Python!
Bye Python!
Update Python
>>> f.close()
내용이 잘 추가 된 것을 확인 할 수 있습니다.
5. 파일 열기 모드(w+, r+, a+) 테스트
위에 써놨던 예제를
파일명 : w+test.txt / r+test.txt / a+test.txt
기존 파일내용 : Hello Python!
w+ 모드에서 “abc”를 입력 / 파일내용은 “abc”
r+ 모드에서 “abc”를 입력 / 파일내용은 “abclo Pyhon!”
a+ 모드에서 “Update Python!”를 입력 / 파일내용은 “Hello Python!Update Python!”
5_1. w+ 테스트
1) w+test.txt 생성
>>> f = open("w+test.txt", "w")
>>> f.write("Hello Pyhton!")
13
>>> f.close()
2) w+test.txt 내용 입력
>>> f = open("w+test.txt", "w+")
>>> f.write("abc")
3
>>> f.close()
3) w+test.txt 내용 확인
>>> f = open("w+test.txt", "r")
>>> read = f.read()
>>> print(read)
abc
파일 내용을 새로 쓰기 때문에 이런 결과가 나옵니다.
5_2. r+ 테스트
1) r+test.txt 생성
>>> f = open("r+test.txt", "w")
>>> f.write("Hello Python!")
13
>>> f.close()
2) r+test.txt 내용 입력
>>> f = open("r+test.txt", "r+")
>>> f.write("abc")
3
>>> f.close()
3) r+test.txt 내용 확인
>>> f = open("r+test.txt", "r")
>>> read = f.read()
>>> print(read)
abclo Python!
기존 파일 위에 내용을 덮어 씌웠습니다.
5_3 a+ 테스트
1) a+test.txt 생성
>>> f = open("a+test.txt" , "w")
>>> f.write("Hello Python!")
13
>>> f.close()
2) a+test.txt 내용 입력
>>> f = open("a+test.txt", "a+")
>>> f.write("\nUpdate Python!")
14
>>> f.close()
3) a+test.txt 내용 확인
>>> f = open("a+test.txt", "r")
>>> read = f.read()
>>> print(read)
Hello Python!
Update Python!
>>> f.close()
내용은 유지되고 새로운 내용이 추가된걸 확인 할 수 있습니다.
'Python > Python 기본 개념' 카테고리의 다른 글
15. 파이썬(Python) 같은파일, 폴더 존재유무 확인하기 (2) | 2017.11.13 |
---|---|
13. 파이썬(Python) 클래스(Class)2 (2) | 2017.10.20 |
13. 파이선(Python) 클래스(Class)1 (0) | 2017.10.19 |
12. 파이썬(Python) 모듈(module) (0) | 2017.09.18 |
11. 파이썬(Python) IDLE 디렉터리(폴더) 위치 변경 (0) | 2017.09.04 |