[2주차] 파이썬 중급: txt파일 write(), read()

Gracie·2024년 4월 16일
0

txt 파일 관련 함수

  1. open() 파일 열기
  2. read() write() 읽기 또는 쓰기
  3. close() 파일 닫기

open(파일경로/파일명, 기능(w, a, x, r))

'w':쓰기 전용(파일이 있으면 덮어 씌움)
'a': 쓰기 전용(파일이 있으면 덧붙임)
'x': 쓰기 전용(파일이 있으면 에러 발생)
'r': 읽기전용(파일이 없으면 에러 발생)

#reference variable: file
# w모드: 해당 파일명이 없으면 신규파일 생성하고, 기존에 있던 글을 지우고 새로운 글자로 덮음
file = open('C:/pythonEx/test.txt' , 'w')

#write method는 텍스트 길이를 반환함
strCnt = file.write('Hello python!')
print(f'strCnt: {strCnt}')

file.close()

#오늘의 스케줄표 작성하기

import time
lt = time.localtime()

#strftime() method: 시간을 format형태로 만들어 줌
#소문자 m은 월 대문자 M은 분, 소문자 p는 PM/AM 구분해 주는 기호
#15시 > 3시로 표현하고 싶은 경우: %H > %I

dateStr = time.strftime('%Y-%m-%d %H:%M:%S %p')
print(type(dateStr))
file = open('C:/pythonEx/test.txt', 'w')
str = input('오늘 할일: ')
file.write(dateStr + str)
file.close()

txt파일을 작성하는 2가지 방법

  1. write()
with open(url + 'write().txt', 'a') as f:
    f.wirte('hi')
  1. print()
with open(url + 'print().txt', 'a') as f:
    print('hi', file=f)

with ~ as ~

  • close() 없이 txt파일을 불러올 수 있는 구문
url = 'C:/pythonEx/'

with open(url + '5_037.txt', 'a') as file:
    file.write('python study~!!')

writelines()

  • 여러줄의 텍스트를 파일에 입력할 때 사용하는 함수
  • list 또는 iterable 객체를 인자로 받아 해당 객체에 포함된 각 문자열을 파일에 입력함 (줄바꿈\n 없이 그대로 입력 됨)
languages = ['c/c++', 'java', 'c#', 'python', 'javascript']

url = 'C:/pythonEx/'
with open(url + 'language.txt', 'a') as f:
    #List Comprehension 사용하여 줄바꿈을 쓸 수도 있음
    f.writelines(item + '\n' for item in languages)

List Comprehension
반복문과 조건문을 결합하여 한 줄로 리스트를 생성할 수 있음
표현식 for 요소 in iterable if 조건

  • 표현식:각 요소에 대해 계산되어 리스트에 추가될 값
  • 요소: iterable 객체에서 가져온 개별 요소입니다
  • iterable: 반복 가능한 객체(리스트, 튜플, 문자열 등)
  • if 조건: 선택적으로 사용되며, 표현식이 추가될 때 조건을 만족하는 요소만을 포함함
#0부터 9까지의 숫자 중에서 짝수만을 제곱하여 새로운 리스트를 생성
even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares)  # 출력: [0, 4, 16, 36, 64]

readlines(), readline()

  • readlines(): 파일에 모든 행을 읽어와 list로 반환
  • readline(): 첫 번째 행을 읽어와 문자열을 반환
  • 각 행에 끝에 있는 개행\n도 포함해서 읽어옴
with open(url + 'readlines().txt', 'r') as f:
    str = f.readlines()
print(str)
#출력값: ['hello c/c++\n', 'hello java\n', 'hello python\n', 'hello javascript\n', 'hello R']

with open(url + 'readlines().txt', 'r') as f:
     str2 = f.readline()
     str3 = f.readline()
print(str2,str3)
#hello c/c++
# hello java
profile
비전공자의 Data Analyst 도전기 🥹✨

0개의 댓글