파일명에서 끝의 .csv만 떼고 싶다면 Python 3.9 이상에서 name.removesuffix(".csv")를 쓰세요. strip(".csv")는 ., c, s, v를 제거할 문자로 보고 양쪽 끝을 훑습니다. 그래서 scans.csv에서는 확장자에 이어 이름 끝의 s도 지우고, 이름 앞의 sc도 지웁니다.
같은 파일명에 세 메서드 적용하기
가상의 파일명 문자열입니다. 아래 코드는 바뀐 문자열만 출력합니다.
name = "scans.csv"
print("strip ", name.strip(".csv"))
print("rstrip ", name.rstrip(".csv"))
print("removesuffix", name.removesuffix(".csv"))
strip an
rstrip scan
removesuffix scans
rstrip(".csv")로 바꿔도 이름 끝의 s는 남지 않습니다. 훑는 방향만 오른쪽 끝으로 좁혀지고, .csv를 문자 집합으로 보는 규칙은 같습니다. removesuffix(".csv")는 마지막 네 글자가 순서까지 일치하는지 확인하고 그 부분을 한 번 떼므로 scans를 얻습니다.
접미사가 두 번 나오거나 대소문자가 다르면
for name in ("scans.csv.csv", "scans.CSV", "scans.txt"):
print(name.removesuffix(".csv"))
scans.csv
scans.CSV
scans.txt
접미사가 두 번 붙어도 끝의 한 번만 제거합니다. .CSV와 .txt는 .csv와 정확히 일치하지 않아 그대로 남습니다. 입력 양끝의 공백만 정리하는 일이라면 인수 없는 strip()을 쓸 수 있습니다. 먼저 제거하려는 대상이 양끝의 개별 문자인지, 끝에 붙은 문자열 하나인지 정하면 됩니다.
예제는 Windows의 Python 3.14.3에서 실행했습니다. Python의 strip 문서와 removesuffix 문서에서 각 규칙을 확인할 수 있습니다.
“파일명 끝을 지웠는데 이름까지 잘릴 때, 파이썬 strip과 removesuffix”에 대한 1개의 생각