2009年11月10日火曜日

とりあえず、テキストのコードを自分の環境に合わせて動くように書いてみた!!!


#!C:/Python31/python
import sys
marker = '::::::'

for name in sys.argv[1:]:
input = open(name, 'r')
print (marker + name)
print (input.read(),)


おおお、これで引数で与えたファイルパスでファイルを開いて次々printしてくれる!!!
すごいすごい、簡単すぎる!

でもいろんな疑問。

・ファイルをオープンしてクローズしてないけどいいのかな?
・input.read() でファイルから読み込んで全部メモリにのっけるの?メモリ食いまくり?
・テキストファイル読み込んでるけどエンコーディング指定してないよ?

そんなわけで、ファイルに日本語書いてみた!
ら!エラー!


Traceback (most recent call last):
File "./src/packer.py", line 8, in
print (input.read(),)
UnicodeDecodeError: 'cp932' codec can't decode bytes in position 17-18: illegal
multibyte sequence


ふむ、UTF-8でファイルを保存したのがだめらしい。

CP932ってなんだ?

http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000716.html

Windowsでの正しい文字コード。
Windowsの文字コードは、一般的には「シフトJIS」だが、正しくは「CP932」である。
「MS932」とも言う。


なんと!!!

ってなわけで、ファイルをあらためてShiftJISで保存してみる。

おおお、動いたー!!!

0 件のコメント:

コメントを投稿