인터넷에서 파일을 다운로드 받을 때, 파일이름이 URL decode 되지 않은채로 다운로드되는 경우가 있다

파일 사용 자체에는 문제 없지만, 파일이름을 알아보기 힘들다는 문제점이 있다

그런 파일들이 많을 때는 더 문제다


그래서 특정 디렉토리 내의 파일들의 이름을 url-decode하는 코드를 작성해봤다.

실행에는 python3가 필요하다



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""
Filename : urldecode.py
Python version : 3
Usage example : python urldecode.py C:\\my_dir
"""
import os
import argparse
from pathlib import Path
from urllib.parse import unquote
 
parser = argparse.ArgumentParser(description='특정 디렉토리의 url-encoded 파일이름들을 decode하는 프로그램')
parser.add_argument('dirpath', type=str, help='url-encoded 파일들이 위치한 디렉토리 경로')
args = parser.parse_args()
 
dirpath = Path(args.dirpath)
 
filenames = [x for x in dirpath.iterdir() if x.is_file()]
for x in filenames:
    print(x)
yn = input('rename all? (Y/n) : ').lower()
if yn != 'y':
    exit(0)
 
for old in filenames:
    new = Path(unquote(old.name))
    if new == old:
        continue
 
    print('Renamed {old} -> {new}'.format(old=old, new=new))
    old.rename(new)
 
cs




WRITTEN BY
Hojong
보안과 개발에 대한 정보들 공유 https://github.com/ssaemo https://www.acmicpc.net/user/ssaemo

secret

사용중인 블로그 스킨이 방명록을 지원하지 않습니다.

초대장을 받고싶으신 분들은 댓글 또는 블로그 설명의 메일로.