카테고리 없음

내일배움캠프_파이썬 라이브러리 세션_3회차

iron-min 2025. 9. 29. 22:22

 1. CSV 파일 다루기

 

예시데이터

 

csv 파일을 읽는 방법입니다.

우선 

import csv

를 입력해주고

 

첫번째 방법

# 기본적인 CSV 파일 읽기
with open('csv_test.csv', 'r', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
    chat    print(row)# 각 행은 리스트로 반환됩니다
       
# 헤더가 있는 CSV 파일 읽기 (더 편리함)
with open('csv_test.csv', 'r', encoding='utf-8') as file:
    csv_reader = csv.DictReader(file)# 첫 번째 행을 헤더로 사용
    for row in csv_reader:
        print(row['이름'], row['직업'])# 딕셔너리 형태로 접근

 

두번째 방법

# 헤더가 있는 CSV 파일 읽기 (더 편리함)
with open('csv_test.csv', 'r', encoding='utf-8') as file:
    csv_reader = csv.DictReader(file)# 첫 번째 행을 헤더로 사용
    for row in csv_reader:
        print(row['이름'], row['직업'])# 딕셔너리 형태로 접근

 

저기서 주의할점은 encoding을 맞춰줘야 엑셀파일이 파이썬 코드로 읽힌다는데 몇번 해봤는데 안되더군요.

일단 보류하고 실전에서 문제생기면 그때 해결하도록 하겠습니다.

 

 2. CSV 파일 만들기

import csv

# 리스트 형태의 데이터 쓰기 (도서 분야 테마)
data = [
    ['이름', '나이', '직업'],
    ['유서윤', '34', '서점MD'],
    ['남지후', '27', '출판편집자']
]

with open('output.csv', 'w', newline='', encoding='utf-8') as file:
    csv_writer = csv.writer(file)
    csv_writer.writerows(data)# 한 번에 모든 행 쓰기
    # 딕셔너리 형태의 데이터 쓰기
data_dict = [
    {'이름': '문하린', '나이': 29, '직업': '번역가'},
    {'이름': '유서윤', '나이': 34, '직업': '서점MD'}
]

with open('output_dict.csv', 'w', newline='', encoding='utf-8') as file:
    fieldnames = ['이름', '나이', '직업']
    csv_writer = csv.DictWriter(file, fieldnames=fieldnames)
   
    csv_writer.writeheader()# 헤더 쓰기
    csv_writer.writerows(data_dict)# 데이터 쓰기

이런식으로 리스트와 딕셔너리 형태의 csv파일을 만들수 있습니다.

실행해주면

 

같은 폴더에 

 

이런 폴더가 생기게 되고

 

 

이런식으로 폴더가 생기는데

안에 들어가보니 또 깨집니다.... 튜터님이 해결방법을 알려주셨는데 또 깨져서 이것도... 일단 보류하고...

나중에 프로젝트 진행할 때도 깨지면 해결해보겠습니다.

 

 3. JSON 파일 다루기

예시 데이터

{
  "이름": "유서윤",
  "나이": 34,
  "직업": "서점MD",
  "취미": ["제빵", "사진", "하이킹"],
  "주소": {
    "시": "제주",
    "구": "제주시"
  },
  "선호장르": ["에세이", "그래픽노블"]
}

 

 

JSON 파일 읽기

import json

# JSON 파일 읽기
with open('json_test.json', 'r', encoding='utf-8') as file:
    data = json.load(file) # 파일의 JSON을 파이썬 객체로 변환
    print(data)
    print(data['이름'])# 딕셔너리처럼 접근
   
# JSON 문자열을 객체로 변환
json_string = '{"이름": "남지후", "나이": 27, "선호장르": ["인문", "소설"]}'
data2 = json.loads(json_string)
print(data2['이름'])

 

JSON 파일 쓰기

import json

# 딕셔너리 데이터 준비 (도서 테마)
person_data = {
    "이름": "문하린",
    "나이": 29,
    "직업": "번역가",
    "취미": ["동네책방투어", "보드게임"],
    "주소": {
        "시": "부산",
        "구": "해운대구"
    },
    "최근번역": {"제목": "바닷가의 서점", "언어": "영→한"}
}

# JSON 파일로 저장
with open('person.json', 'w', encoding='utf-8') as file:
    json.dump(person_data, file, ensure_ascii=False, indent=2)

# 문자열로 변환
json_string = json.dumps(person_data, ensure_ascii=False, indent=2)
print(json_string)

 

 4. 텍스트 파일 처리

서점 재고 점검 리스트입니다.
신간 코너 위치를 업데이트하세요.
행사 테이블은 주말에 교체 예정입니다.

 

# 텍스트 파일 읽기 - 전체 내용
with open('Text_test.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

# 텍스트 파일 읽기 - 한 줄씩
with open('Text_test.txt', 'r', encoding='utf-8') as file:
    for line_num, line in enumerate(file, 1):
        print(f"{line_num}: {line.strip()}")

# 텍스트 파일 쓰기
with open('output.txt', 'w', encoding='utf-8') as file:
    file.write('공지: 오늘 18시에 마감 점검\n')
    file.write('테이블 배치도는 3층 탕비실 보관\n')

# 여러 줄 한 번에 쓰기
    lines = ['사인회 안내문 업데이트\n', '전자책 체험존 점검\n']
    file.writelines(lines)  # <-- 여기서 들여쓰기가 끊기면 오류 발생

 

 

 5. 정규표현식 기초

 

 

※ 사용법

import re

text = "연락처: 019-2468-1357, 이메일: booklover@readers.co.kr, 생년월일: 1988-03-12"

# 패턴 정의
phone_pattern = r'\d{3}-\d{4}-\d{4}'# 전화번호 패턴
email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2}'# 이메일 패턴
date_pattern = r'\d{4}-\d{2}-\d{2}'# 날짜 패턴

# 첫 번째 매치 찾기
phone = re.search(phone_pattern, text)
if phone:
    print(f"전화번호: {phone.group()}")

# 모든 숫자 추출
numbers = re.findall(r'\d+', text)
print(f"모든 숫자: {numbers}")

# 문자열 치환
masked_text = re.sub(phone_pattern, '019-****-****', text)
print(f"마스킹된 텍스트: {masked_text}")