해당 글은 제로베이스데이터스쿨 학습자료를 참고하여 작성되었습니다
- open() : 열기
- read() : 읽기
- write() : 쓰기
- close() : 닫기
- w : 쓰기모드 : 파일이 없으면 생성, 있으면 내용 초기화
- x : 쓰기모드 : 파일이 있으면 오류
- a : 추가모드 : 파일이 없으면 생성
- r : 읽기모드 : 파일이 없으면 오류발생
📝입력
print('쓰기모드')
file = open('text.txt', 'w')
strCnt = file.write('Hello world~')
print('strCnt: {}'.format(strCnt))
file.close()
print()
print('안전한 파일생성')
try:
file = open('text.txt', 'x')
except:
print('파일이 이미 존재합니다')
print()
else:
strCnt = file.write('Hello world~')
print('strCnt: {}'.format(strCnt))
file.close()
print()
print('읽기모드')
file = open('text.txt', 'r')
strCnt = file.read()
print('strCnt: {}'.format(strCnt))
file.close()
print()
print('추가모드')
file = open('text.txt', 'a', encoding='utf-8')
strCnt = file.write('내용을 추가합니다')
print('strCnt: {}'.format(strCnt))
file.close()
🧾출력
쓰기모드
strCnt: 12
안전한 파일생성
파일이 이미 존재합니다
읽기모드
strCnt: Hello world~
추가모드
strCnt: 9
🧾text.txt
Hello world~내용을 추가합니다
📝입력
uri = "C:/pythonEx/project/2_001/"
with open(uri + 'test.txt', 'a') as f:
f.write('python study!!')
with open(uri + 'test.txt', 'r') as f:
print(f.read())
🧾출력
python study!!
🧾test.txt
python study!!
아래의 방식은 개행이 안됨
📝입력
languages = ['c/c++', 'java', 'c#', 'python', 'javascritpt'] uri = "C:/pythonEx/project/2_001/" with open(uri + 'languages.txt', 'a') as f: f.writelines(languages)
🧾languages.txt
c/c++javac#pythonjavascritpt
개행추가 방식
📝입력
languages = ['c/c++', 'java', 'c#', 'python', 'javascritpt'] uri = "C:/pythonEx/project/2_001/" with open(uri + 'languages.txt', 'a') as f: f.writelines(item + '\n' for item in languages)
🧾languages.txt
c/c++ java c# python javascritpt
읽어서 출력하기
📝입력
languages = ['c/c++', 'java', 'c#', 'python', 'javascritpt'] uri = "C:/pythonEx/project/2_001/" with open(uri + 'languages.txt', 'r') as f: print(f.read())
🧾출력
c/c++ java c# python javascritpt
- print(변수, file=출력위치)
📝입력
languages = ['c/c++', 'java', 'c#', 'python', 'javascritpt']
uri = "C:/pythonEx/project/2_001/"
with open(uri + 'origin_languages.txt', 'a') as f:
print(languages, file=f)
🧾origin_languages.txt
['c/c++', 'java', 'c#', 'python', 'javascritpt']
📝입력
uri = "C:/pythonEx/project/2_001/"
with open(uri + 'languages.txt', 'r') as f:
lanList = f.readlines()
print('lanList : {}'.format(lanList))
print('lanList type : {}'.format(type(lanList)))
for item in lanList:
print(item, end='')
🧾출력
lanList : ['c/c++\n', 'java\n', 'c#\n', 'python\n', 'javascritpt\n']
lanList type : <class 'list'>
c/c++
java
c#
python
javascritpt
- 텍스트에 있는 개행도 읽고, print() 자체도 개행이 있으므로 end=''사용을 고려한다
📝입력
uri = "C:/pythonEx/project/2_001/"
with open(uri + 'languages.txt', 'r') as f:
line = f.readline()
while line != '':
print('line : {}'.format(line), end='')
line = f.readline()
🧾출력
line : c/c++
line : java
line : c#
line : python
line : javascritpt