파이썬 중급 - 텍스트 파일

이상해씨·2021년 10월 8일
0

자료구조, 알고리즘

목록 보기
18/20
post-custom-banner

◾텍스트 파일

  • 텍스트 파일 기본 함수
    • open(), read(), write(), close()
    • 텍스트 파일 -> open() : 열기 -> read() : 읽기 | wirte() : 쓰기 -> close() : 닫기
  • write() : 쓰기
# 파일 쓰기
# w : 파일 생성(파일이 존재하더라도 새로 생성)
file = open('경로/test.txt', 'w')

strCnt = file.write('Hello PYTHON~') # 쓰여진 문자열의 길이 반환
print(f'strCnt : {strCnt}')

file.close()
  • read() : 읽기
# 파일 읽기
try:
    file = open('경로/test.txt', 'r')
except Exception as e:
    print('에러 발생')
    print(e)

string = file.read()
print('string : {}'.format(string))

file.close()

◾열기 모드

  • 파일 모드 : 파일을 어떤 목적으로 open할지 정하는 것
    • w : 쓰기 전용(파일이 있으면 덮어씌움)
    • a : 쓰기 전용(파일이 있으면 덧붙임)
    • x : 쓰기 전용(파일이 있으면 에러 발생)
    • r : 읽기 전용(파일이 없으면 에러 발생)
# 파일 모드

# w 쓰기 모드
file = open('경로/hello.txt', 'w')
file.write('Hello World!')
file.close()

# a 쓰기 모드
file = open('경로/hello.txt', 'a')
file.write('\nNice to meet You!')
file.close()

# x 쓰기 모드
# hello.txt가 있으면 에러
file = open('경로/hello_a.txt', 'x')
file.write('Nice to meet You!')
file.close()

# r 읽기 모드
# hello.txt가 없으면 에러
file = open('경로/hello.txt', 'r')
string = file.read()
print(string)
file.close()

◾with ~ as문

  • with ~ as문 : 파일 닫기를 생략하는 구문
    • 코드블럭 내에서만 해당 함수로 생성한 객체 사용 가능
# with ~ as
# 쓰기
with open('경로/5_037.txt', 'a') as f:
    f.write('python study!!\n')
# 읽기
with open('경로/5_037.txt', 'r') as f:
    print(f.read())

◾읽기 쓰기 함수

  • writelines() : 반복 가능한 자료형(리스트, 튜플 등)의 데이터 쓰기
# writelines()
languages = ['c/c++', 'java', 'python', 'javascript']

# write 활용
# for item in languages:
#     with open(uri + 'languages.txt', 'a') as f:
#         f.write(item)
#         f.write('\n')

with open(uri + 'languages.txt', 'a') as f:
    f.writelines(item + '\n' for item in languages)

# 파일 확인
with open(uri + 'languages.txt', 'r') as f:
    print(f.read())
  • readlines() : 여러 줄 읽기, 모든 내용을 개행을 기준으로 분리하여 리스트로 반환
# readlines()
with open(uri + 'lans.txt', 'r') as f:
    lanList = f.readlines()

print('lanList : {}'.format(lanList))
print('lanList type : {}'.format(type(lanList)))
  • readline() : 한 줄만 읽기, 개행을 기준으로 한 라인의 내용을 반환
# readline()
with open(uri + 'lans.txt', 'r') as f:
    line = f.readline()

    while line != '':
        print('-'*25)
        print('line : {}'.format(line), end='')
        line = f.readline()
profile
후라이드 치킨
post-custom-banner

0개의 댓글