코딩/파이썬
파일 이름 특정 문자들을 일괄로 지우기(2)
샐프
2022. 8. 31. 13:32
반응형
이번에는 확장자 앞에 공백이 있을 경우 그 공백이 사라질 때 까지 지우는 기능을 추가한다.
먼저 파일이 여러개라면 확장자 리스트를 준비한다.
# 확장자 리스트
ext_list = ['.txt', '.zip', '.epub', '.7z', '.mp4', '.avi', '.pdf']
그리고 공백을 지우는 작업을 해 준다.
for i in ext_list:
# 해당 확장자 파일인 경우
#if target_name.find(i) != -1:
if target_name in ext_list:
# 확장자 앞 칸
b_num = target_name.find(i) - 1
# 확장자 앞 칸이 공백이라면
if target_name[b_num] == ' ':
# 확장자 앞 칸이 문자가 나올때 까지 공백 지우기
print('지우기 전: ', target_name)
while 1 == 1:
# 확장자 앞에 공백이 없다면
if target_name[b_num] != ' ':
print('지운 후: ', new_name)
break
# 공백 지우기
new_name = ''.join(target_name[x]
for x in range(len(target_name))
if x != b_num)
old_path_name = os.path.join(src, target_name)
new_path_name = os.path.join(src, new_name)
os.rename(old_path_name, new_path_name)
target_name = os.path.basename(new_path_name)
문자열에 해당 확장자가 있는지 검사한다.
# 해당 확장자가 문자열에 없을때 -1을 리턴
if target_name.find(i) != -1:
# 해당 확장자가 문자열에 있는지 확인
if target_name in ext_list:
둘 중 아무거나 써도 상관 없다.
해놓고 생각난건대 굳이 저렇게 확장자가 있는지 검사할 이유가 없었다.
'문자열'.find('문자') : i라는 문자가 있으면 그 자리 번호를 리턴
a = 'abcde'
print(a.find('c'))
# 출력
2
확장자 앞칸의 공백을 없애고 싶기 때문에 확장자 위치를 기준으로 -1칸이 공백인지 검사한다.
if target_name[b_num] == ' ':
그리고 공백이 아닐때 까지 무한반복한다.
while 1 == 1:
# 확장자 앞에 공백이 없다면
if target_name[b_num] != ' ':
print('지운 후: ', new_name)
break
# 공백 지우기
new_name = ''.join(target_name[x]
for x in range(len(target_name))
if x != b_num)
문자열에서 문자 하나만 지우는 방법이 3가지가 있는데
https://codechacha.com/ko/python-remove-char-in-string/
여기서 참고하면 된다.
이후 이름 바꾸기
old_path_name = os.path.join(src, target_name)
new_path_name = os.path.join(src, new_name)
os.rename(old_path_name, new_path_name)
target_name = os.path.basename(new_path_name)
반응형