출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]
# chapter09_01
# 파일 읽기 및 쓰기

# 읽기 모드 r 쓰기모드 w 추가모드 a 텍스트모드 t 바이너리모드 b
# 상대경로('../, ./') 절대 경로("C:\django\example..")

# 파일 읽기, 읽기 작업(read)
# 예제1)
import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
#한글깨짐 방지

f = open('./resource/it_news.txt', 'r', encoding='UTF-8')

# 속성확인
print(dir(f))
# 인코딩 확인
print(f.encoding)
# 파일이름
print(f.name)
# 모드 학인
print(f.mode)

cts=f.read()
print(cts)

#반드시 clos
f.close()


print('--------------------------------------')

# 예제2
with open('./resource/it_news.txt', 'r', encoding='UTF-8') as f :
    c = f.read()
    print(c)
    print(iter(c))
    print(list(c))
    # with문에서는 알아서 close해준다.

print('--------------------------------------')


# 예제3
# read() : 전체 읽기, read(10) : 10byte만 읽어옴
with open('./resource/it_news.txt', 'r', encoding='UTF-8') as f :
    c = f.read(20)
    print(c)
    c = f.read(20)
    print(c) # 다음 20byte를 읽어봄. 내가 마지막에 어디까지 읽었는지 내부적으로 기억.
    c = f.read(20)
    print(c)
    f.seek(0,0) # 처음으로 from 0 to 0
    c = f.read(20)
    print(c)
print('--------------------------------------')

# 예제4
# readline : 한줄씩 읽기
with open('./resource/it_news.txt', 'r', encoding='UTF-8') as f :
    line = f.readline()
    print(line)
    line = f.readline()
    print(line) #반복문 안에서 읽어오는 것이 좋다.
print('--------------------------------------')

# 예제5
# readlines : 전체를 읽은 후 라인 단위 리스트로 저장
with open('./resource/it_news.txt', 'r', encoding='UTF-8') as f :
    cts = f.readlines()
    print(cts)
    print(cts[0])

    for c in cts :
        print(c, end='')

print('--------------------------------------')


# 파일쓰기 (write)

# 예제1
with open('./resource/contents1.txt', 'w') as f :
    f.write('I love Python\n')

# 예제2
with open('./resource/contents1.txt', 'a') as f :
    f.write('I love Python\n')       # w로하면 덮어쓰기 a 뒤에추가 (append)

# 예제3
# writelines : 리스트 > 파일로 한줄씩
with open('./resource/contents2.txt', 'w') as f :
    list=['orange\n', 'Apple\n', 'banana\n','melon\n']
    f.writelines(list)

# 예제4
with open('./resource/contents3.txt', 'w') as f :
    print('Test Text Write', file=f) #콘솔이 아니라, 파일로 출력

+ Recent posts