Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

파이썬 스크립트

🐍 Python | 문자열 처리와 xlwings로 엑셀 데이터 다루기 ---

Billcorea 2025. 11. 1. 15:32
반응형

문자열처리

1️⃣ 글 제목

🐍 Python | 문자열 처리와 xlwings로 엑셀 데이터 다루기 ---

2️⃣ 개요 (Intro)

- 오늘은 Python에서 문자열을 다루는 다양한 방법과 xlwings를 활용한 엑셀 데이터 처리에 대해 실험하고 정리했다. - 특히 숫자 서식이 적용된 엑셀 셀을 문자형으로 읽어오는 문제와 문자열의 특정 패턴 확인 및 변환에 집중했다. - 사용한 기술 스택은 다음과 같다.

📅 날짜: 2025.11.01 🎯 목표: 문자열 처리 및 xlwings 엑셀 연동 🧰 기술: Python 3.11, xlwings, re(정규표현식)

---

3️⃣ 문제 정의 (Problem / Motivation)

- 엑셀에서 숫자 서식이 적용된 셀을 xlwings로 읽어올 때, `1.0`처럼 float로 인식되어 문자열로 변환 시 `.0`이 붙는 문제가 있었다. - 또한 문자열의 첫 문자가 알파벳인지, 특정 패턴(`.0`, `'`, `"`)이 포함되어 있는지 확인하는 로직이 필요했다. - 이를 해결하기 위해 다양한 문자열 메서드와 정규표현식을 테스트했다.


# 숫자 서식 셀을 문자열로 변환
value = sheet.range('A1').value
if isinstance(value, float) and value.is_integer():
    value_as_str = str(int(value))
else:
    value_as_str = str(value)

---

4️⃣ 해결 과정 (How I Solved It)

- `str()`로 변환 시 `1.0`처럼 float 값이 그대로 문자열로 표현되는 문제를 `is_integer()`로 해결했다. - 문자열의 첫 문자가 알파벳인지 확인할 때는 `text[0].isalpha()`를 사용했고, `.0`으로 끝나는지 확인할 때는 `text.endswith('.0')`를 활용했다. - `'` → `"` 변환은 `text.replace("'", '"')`로 간단히 처리했고, 마침표 개수는 `text.count('.')`로 확인했다.


# 문자열에서 .0으로 끝나는지 확인
if text.endswith('.0'):
    print("문자열은 .0으로 끝납니다.")

---

5️⃣ 결과 (Result)

- 엑셀 셀의 숫자 서식을 문자형으로 안정적으로 변환할 수 있게 되었고, 문자열 처리 로직도 정리되었다. - 다양한 문자열 패턴을 정규표현식과 내장 메서드로 처리할 수 있는 자신감이 생겼다.

✅ 엑셀 숫자 셀을 문자형으로 변환 성공 🔍 문자열 패턴 확인 및 변환 로직 정리 완료

---

6️⃣ 느낀 점 / 회고 (Reflection)

- Python의 문자열 메서드는 직관적이고 강력하지만, float 처리나 엑셀 연동 시에는 세심한 조건 분기가 필요하다는 걸 느꼈다. - 다음에는 `openpyxl`이나 `pandas`를 활용한 방식도 비교해보고 싶다. - 정규표현식은 여전히 강력한 도구이며, 다양한 패턴 인식에 유용하다. ---

7️⃣ 참고자료 (References)

- [xlwings 공식 문서](https://docs.xlwings.org/en/stable/) - [Python 문자열 메서드 정리](https://docs.python.org/3/library/stdtypes.html#string-methods) - [re 정규표현식 문서](https://docs.python.org/3/library/re.html) ---

 

반응형