파이썬에서는 문자열 슬라이싱을 사용하여 문자열을 특정 부분만 추출할 수 있습니다. 문자열 슬라이싱은 다음과 같은 형식을 가집니다: string[start:stop:step]. 여기서 start는 시작 인덱스, stop은 종료 인덱스(해당 인덱스는 포함되지 않음), step은 슬라이스 간격입니다.
Table Of Contents
1. 파이썬 문자열 슬라이싱 기본 사용
text = "Hello, World!"
# 처음부터 끝까지 전체 문자열
result = text[:]
print(result) # Output: Hello, World!
# 시작 인덱스부터 끝까지
result = text[7:]
print(result) # Output: World!
# 시작 인덱스부터 종료 인덱스 이전까지
result = text[7:12]
print(result) # Output: World
# 음수 인덱스 사용 (끝에서부터 역으로 세어짐)
result = text[-6:-1]
print(result) # Output: World
2. 파이썬 문자열 슬라이싱 간격(Step) 사용
text = "Python Programming"
# 간격을 이용하여 홀수 번째 문자만 추출
result = text[::2]
print(result) # Output: Pto rgamn
# 간격을 이용하여 역순으로 문자열 추출
result = text[::-1]
print(result) # Output: gnimmargorP nohtyP
3. 파이썬 문자열 슬라이싱 특정 간격으로 슬라이싱
text = "abcdefgh"
# 2씩 건너뛰며 슬라이싱
result = text[1::2]
print(result) # Output: bdfh
4. 파이썬 문자열 슬라이스 결과를 새로운 변수에 할당
text = "Python"
# 슬라이스 결과를 새로운 변수에 할당
substring = text[2:5]
print(substring) # Output: tho
지금까지 살펴본 파이썬 슬라이싱 기능을 사용하면 문자열을 특정한 부분만 추출하여 필요한 정보를 효과적으로 다룰 수 있습니다.
5. 실전 사용 예
DBMS 프로그램시 특정 데이터를 바인딩하여 execute할때, 데이터가 길어서 예외가 발생하는 부분이 있습니다.
이 코드를 슬라이싱을 이용해서 수정합니다.
아래 코드는 execute시 예외가 발생하면 data의 마지막 요소의 길이를 100자로 잘라서 다시 execute하는 코드입니다:
p = ["?"]*len(tuples[0])
print(tuples[0])
sql = "INSERT INTO %s VALUES (%s)" % (tableName, ",".join(p))
for data in tuples:
try:
# Execute the query for each tuple
self.cursor.execute(sql, data)
insertCount = insertCount + 1
# print("Inserted data: %s" % str(data))
except Exception as e:
# Print the SQL statement and the exception if an error occurs
# print(f"Error executing SQL: {sql}")
print(f"Exception: {e} Error executing SQL: {sql}")
errCount = errCount + 1
# If an error occurs, truncate the last element of data to 100 characters and retry
data = list(data)
data[len(data)-1] = data[len(data)-1][:100]
try:
self.cursor.execute(sql, data)
insertCount = insertCount + 1
except Exception as e:
print(f"Exception after truncation: {e} Error executing SQL: {sql}")
errCount = errCount + 1
위의 코드에서, 예외가 발생하면 data의 마지막 요소를 100자로 잘라서 다시 execute합니다. 만약 이후에도 예외가 발생하면, 그 예외도 출력합니다.
이렇게 하면 data의 마지막 요소의 길이가 문제를 일으키는 경우에 대응할 수 있습니다.
그러나 이 코드는 data의 21번째 요소가 문자열이라고 가정하고 있으므로, 이 가정이 맞는지 확인해야 합니다. 또한, 이 코드는 data의 21번째 요소가 문제를 일으키는 경우만 처리하므로, 다른 요소나 다른 문제가 예외를 일으키는 경우에는 추가적인 처리가 필요할 수 있습니다. 이러한 경우에는 오류 메시지를 분석하여 적절한 대응 방안을 결정해야 합니다.
오늘은 파이썬에서 문자열을 다루는 법을 알아보았습니다. 파이썬은 문자열을 일반 배열처럼 다룰 수 있게 해주는 슬라이싱 기능을 이용해서 편리하게 처리할 수 있습니다.
'개발' 카테고리의 다른 글
vscode 미니맵에 함수 목록 등 아웃라인(개요) 표시하기 (0) | 2024.01.14 |
---|---|
플러터 앱 개발 시작하기 - flutter app development start (0) | 2024.01.10 |
python try/except와 raise 문 (0) | 2024.01.03 |
Git(Github)에서 리포지토리 정보를 확인하는 방법 (1) | 2024.01.03 |
안드로이드 스튜디오 에뮬레이터로 flutter 앱 실행하기 (0) | 2024.01.02 |