def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True): pass mode: r : read w : write, 만약 파일이 존재하면 커서를 맨 앞으로 돌리면서 뒤 내용을 잘라냄 a : ‘w’와 달리 이미 존재하는 파일 뒤에 이어쓰기 가능 x : 파일이 없으면 파일을 생성하고 쓰기모드, 파일이 있으면 에러를 발생 ‘b’ : 는 바이너리 모드인데 ‘rb’ 이런 식으로 모드 진입이 가능 f = opne("input.txt", "r", encoding="UTF-8") f.seek(3) # 한글은 유니코드로 실행될때 3byte를 차지함 data = f.read() print(data) f.close() count = 0 while count < 3: data = f.readline() # 줄마다 읽을수 있음 count += 1 print("%d번째줄: %s" %(count, data), end=' ') f.close() data = f.readlines() # 각 줄을 리스트에 담아줌 print(data) # ["1번째줄\n", "2번쨰줄\n", "3번쨰줄\n"] f.close() with open("input.txt", "r", encoding="UTF-8") as f: list = f.readlines() for i, data in enumerate(list): print("%d번쨰 줄: %s", %(i, data), end=" ") # data안에 이미 줄바꿈있 def process(filename): with open(filename, "r") as f: dict = {} data = f.read() for i in data: if i in dict: dict[i] += 1 else: dict[i] = 1 return dict dict = process("input.txt") # value를 기준으로 내림차순으로 정렬 dict = sorted(dict.items(), key=lambda a:a[1], reverse=True) with open("index.txt", 'w') as f: f.write('I am writing a file\n') f.writelines('\n'.join(['line1', 'line2', 'line3'])) 참고자료 :