removeprefix, removefix
파이썬 3.9에서 removeprefix와 removeprefix 함수가 추가 되었습니다.
얼핏보면 이 함수들은 기존의 lstrip과 rstrip함수와 달라보이지는 않습니다.
그런데 이 strip함수는 하나만 잘라내는게 아니라 전부 잘라냅니다.
아래의 예제를 보시면 이해가 쉽습니다.
s = 'xyzxyzxyzxyz123123'
print (s.lstrip('xyz'))
print (s.removeprefix('xyz'))
print (s.rstrip('123'))
print (s.removesuffix('123'))
# 123123123
# xyzxyzxyz123123123
# xyzxyzxyzxyz
# xyzxyzxyzxyz123123
strip함수는 1번만 잘라내는게 아니라 전부 잘라내기 때문에 의도와는 다르게 쓰일 수 있습니다.
그렇다면 파이썬 3.9이하에서는 어떻게 할까요?
startswith와 endswith함수로 확인하고, [:] 함수를 이용해서 해당 부분만 잘라냅니다.
조금 번거롭지만 위 함수들을 이용하면, 동일한 효과를 얻을 수가 있습니다.
def removeprefix_alt(text,prefix):
if text.startswith(prefix):
text_new = text[len(prefix):]
else:
text_new = text
return text_new
def removesuffix_alt(text,suffix):
if text.startswith(suffix):
text_new = text[:-len(suffix)]
else:
text_new = text
return text_new
s = 'xyzxyzxyzxyz123123123'
print (s.lstrip('xyz'))
print (removeprefix_alt(s,'xyz'))
print (s.rstrip('123'))
print (removesuffix_alt(s,'xyz'))
# prefix
# 123123123
# xyzxyzxyz123123123
# suffix
# xyzxyzxyzxyz
# xyzxyzxyzxyz123123
이상으로 파이썬 3.9에 추가된 removeprefix, removesuffix함수들을 정리 해 보았습니다