file = u'ほげ.txt'
fullpath = u'%s/%s' % (os.path.abspath(os.path.dirname(sys.argv[0])), file)
みたいな書き方をしたとき、
実行ファイルの場所のパス名がすべて半角英数なら問題なさそうなのですが、
日本語が含まれていると、
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
が出てきてしまいます。
Python 2.5.1 です。
path = os.path.abspath(os.path.dirname(sys.argv[0]))
print isinstance(path, str)
print isinstance(path, unicode)
if isinstance(path, str): path = unicode(path, 'mbcs')
file = u'デスマ.txt'
fullpath = u'%s/%s' % (path, file)
print fullpath
とりあえずこれでどちらでも正常に動くことが確認出来ました。