Python - 文法 - ファイル入出力 - 入力
- 1. 概要
- 2. 入力
- 3. エンコード指定
1. 概要
ファイルからの入力の基本的な部分です。
本ページは、下記のサイトを参考にさせていただきました。
「Python で json ファイル読み書き(UTF-8) #JSON」
「入力と出力」
2. 入力
単純な、テキストファイルを1行ずつ読んでいくとして・・・。
いろはにほへと
ちりぬるを
わかよたれそ
つねならむ
うゐのおくやま
けふこえて
あさきゆめみし
ゑひもせす
てな、テキストファイルが、「./text01.txt」という名前で存在するとします(実際に存在していますが・・・)。
1行ずつ読んで、奇数行のみを出力するとすれば、下記のようなソースでよいのかな・・・。
import os
file_name = os.path.dirname(__file__) + "/text01.txt"
num = 1
with open(file_name, 'r') as file:
for line in file:
if (num % 2):
print(line.rstrip())
num += 1
10行目の「line.rstrip()」は、「python」の入力は、改行もきっちりとりこむし、「print」が、改行付きで出力するものだから、1行分空白行が空くのを防いでいます。
実行すると下記の結果が得られます。
いろはにほへと
わかよたれそ
うゐのおくやま
あさきゆめみし
3. エンコード指定
「FreeBSD」や「Linux」でやっていれば、エンコードは、「UTF-8」なので、意識することはないのですが。
同じファイルを、「Windows」上で、動かそうとすると、デフォルトのエンコードが、「Shift-JIS」なので、読込時にこけちゃったりします。
「open()」時に、エンコードを指定するようにすれば、解決します。
前項のソースで言えば。
with open(file_name, 'r', encoding='utf-8') as file:
になります。
|
|