mieki256's diary



2014/09/09(火) [n年前の日記]

#1 [python] Python勉強中

昨日悩んでた部分について動作確認。Windows7 + Python 2.6.6。
'''
codecs、os.walk() の動作確認
'''
import codecs
import os
import pprint

def main():

    # 指定されたパス以下のファイル一覧を取得
    flist = {}
    for root, dirs, files in os.walk(".\\testdir"):
        for file in files:
            print root, dirs
            name, ext = os.path.splitext(file) # ファイルパスをベース名と拡張子に分ける
            name = name.decode('sjis') # sjis -> unicode に変換してる?
            path = os.path.abspath(os.path.join(root, file))
            flist[name] = path # ハッシュ(辞書)に記録

            print type(file), file
            print type(name), name, type(path), path
            print

    # sjisで書かれたテキストファイルを読み込み
    data = codecs.open("sjis_text.txt", 'r', 'sjis')
    for linedata in data:
        linedata = linedata.rstrip('\r\n') # 行末の改行を削除。Perlのchomp相当
        print type(linedata), linedata
        if flist.has_key(linedata):
            print u"[%s]はあります" % linedata
        else:
            print u"[%s]はありません" % linedata
        print

if __name__ == '__main__':
    main()
以下は動作結果。
.\testdir\日本語ディレクトリ\サブディレクトリ []
<type 'str'> 日本語ファイル名.txt
<type 'unicode'> 日本語ファイル名 <type 'str'> C:\home\prg\python\test_codecs\testdir\日本語ディレクトリ\サブディレクトリ\日本語ファイル名.txt

.\testdir\表示 []
<type 'str'> 表示.txt
<type 'unicode'> 表示 <type 'str'> C:\home\prg\python\test_codecs\testdir\表示\表示.txt

<type 'unicode'> 日本語ファイル名
[日本語ファイル名]はあります

<type 'unicode'> 表示
[表示]はあります

<type 'unicode'> 存在しないファイル名
[存在しないファイル名]はありません

_よりPythonicなPythonを目指して(前編):Python 3が後方互換性を捨ててでも求めたもの (2/2) - @IT によると、Python 3.0 では str型が無くなったらしいので、Python 3.x で動かすと違う動作になるんだろうなと。そもそも print のところを書き換えないと動かないけど。

古いアプリと昔のPythonを紐づける方法は無いのかな。 :

例えば GIMP 2.6.x は Python 2.6 を決め打ちで要求してくるわけで、GIMP 2.6.x + Python-fu を使いたいと思ったら、そのOS上で動く Python を 2.6 にしておかないといかんわけですよ。今時、Python 2.6 に固定って…。Python 3.x とまでは行かなくても、せめて Python 2.7 ぐらいは使いたいわけで…。

古いアプリを動かす時だけ、Python 環境を2.6にする、みたいな設定・工夫はできないものかと。batファイルで環境変数を書き換えて、とか以前試してみた記憶もあるけど、上手くいかなかった、そんな記憶もあるような、ないような。

比較的新しいアプリは、アプリと一緒に Python を実行するための何か(.dll?)も一緒に入ってるようで、Python バージョンの制限を受けない・各アプリが同梱のPythonを決め打ちで使ってるから問題無いのですけど。昔のアプリが…どうしたもんか…。仮想PCでも使って、などと考えたりもするけど、Python のせいで Windowsライセンスをもう一つ買うなんてアホかって感じだし。…いや、GIMP 2.6.x を動かしたいだけなら、Linux でもいいのか。

というか、GIMP 2.6.x でしか動かないプラグイン・Python-fuスクリプトがあるってのがクソなんですけど。GIMP 2.8.x 上でも動いてくれれば悩まなくて済むのに。

以上、1 日分です。

過去ログ表示

Prev - 2014/09 - Next
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

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project