# 파일 및 디렉토리 다루기
# 파일 객체를 리턴하기 : open()
# 파일 객체 = open(파일명, 모드, 인코딩)
# 파일 객체 멤버함수
# write / read / readline / readlines / seek / tell / close
# 파일 열기 모드
# 모드 r : 읽기 모드. 파일을 읽기만 할 때
# 모드 w : 쓰기 모드. 파일에 내용을 쓸 때
# 모드 a : 추가 모드. 파일의 마지막에 새로운 내용을 추가시킬 때
# 쓰기 모드 : 파일 없으면 만들고, 있으면 날아가고 새로 쓴다.
# tell() : 파일의 작업 위치를 찾아준다
# seek() : 파일의 작업 위치를 변경한다.
def file_write():
fp = open("test.txt", "w")
print(fp.tell()) # 파일의 작업 위치값 : 0. 커서 위치라 생각하면 쉽다!
fp.write("abcdefghi")
print(fp.tell()) # 0 + 9 = 9
fp.write("hello")
print(fp.tell()) # 9 + 5 = 14
fp.seek(3) # 작업 위치를 3번으로 이동시킨다
fp.write('123') # 3번에서부터 다시 쓴다!
fp.close()
file_write()
# 읽기 모드
def file_read():
fp = open("test.txt", "r")
rd = fp.read() # 파일에 있는 데이터를 참조한다.
print(rd)
fp.close()
# # 일정한 byte만 읽기
# rd1 = fp.read(3)
# print(fp.tell())
# print(rd1)
# rd1 = fp.read(3)
# print(fp.tell())
# print(rd1)
# # 파일 끝까지 읽기
# while True:
# rd4 = fp.read(3)
# if rd4 == None:
# break
# print(rd4)
# fp.close()
file_read()
# 라인별로 입력 및 readline 출력
def file_write_line():
fp = open("line.txt", "w")
fp.write("abc\\ndef\\nghi")
fp.close()
file_write_line()
def file_read_line():
fp = open("line.txt", "r")
rd = fp.readline()
for r in fp:
print(r)
#print(rd)
fp.close()
file_read_line()