牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

MacOSXでのファイル名の濁点問題を解消?

PythonMacOSXのファイル名を取得しようとすると、ひらがなとカタカナの濁点などが分かれてしまうのを解消するメモ。
どうしてかはこことかこのあたりを参照。

この「合併のお知らせ|OKIソフトウェア」のコードを拝借させていただいた。

参考サイトから一部そのままコピペ。(def normalize(s)のとこ)

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

import os,sys

if sys.platform == 'darwin':
    import popen2
    def normalize(s):
        (rf, wf) = popen2.popen2('/usr/bin/iconv -f UTF-8-MAC -t UTF-8')
        wf.write(s)
        wf.close()
        return rf.read()
else:
    def normalize(s):
        return s
    
def main(dirpath):
    getfname = []
    for path, dir, files in os.walk(dirpath):
        for fname in files:
            getfname.append(fname)
    return getfname


if __name__ == "__main__":
    dirpath = "/Users/home/hogedir"
    print "-"*20
    print "ファイル名そのまま"
    print "-"*20
    for i in main(dirpath):
        print i

    print "-"*20
    print "ファイル名を変換"
    print "-"*20
    for j in main(dirpath):
        print normalize(j)

/Users/home/hogedirにファイル「ABCふげふげ123.eps、ぱけぼけ.eps、漢字ほげほげ.eps」があった場合。

実行結果

                                      • -
ファイル名そのまま
                                      • -
.DS_Store ABCふげふげ123.eps ぱけぼけ.eps 漢字ほげほげ.eps
                                      • -
ファイル名を変換
                                      • -
.DS_Store ABCふげふげ123.eps ぱけぼけ.eps 漢字ほげほげ.eps