Create TOC

2009년 5월 8일

Urlencode된 파일 이름을 Decode하기

Opera에서 파일을 받으면 한글이름일 경우 urlencode 된 이름으로 저장된다. decode 하는 간단한 스크립트를 작성했다

#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import sys
import urllib


def printUsing():
    """사용 방법을 출력한다."""
    print 'fixname.py  [  ...]'


def getUnquoteFileName(name):
    try:
        return unicode(urllib.unquote(name).decode('utf-8'))
    except UnicodeDecodeError:
        return unicode(urllib.unquote(name).decode('cp949'))


def main():
    for argv in filter(os.path.isfile, sys.argv[1:]):
        decoded_argv = getUnquoteFileName(argv)
        if argv != decoded_argv:
            print '%s -> %s' % (argv, decoded_argv)
            os.rename(argv, decoded_argv)

if __name__ == '__main__':
    if len(sys.argv) < 2:
        printUsing()
    else:
        main()