#!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 件のコメント:
コメントを投稿