Edited at

Pythonでテキストの読み書き

More than 3 years have passed since last update.

今回も私がよく使うPythonでのテキストの読み書きについてです。


1. サンプルコード


sample.py

#-*- coding:utf-8 -*-


if __name__ == '__main__':
print "\ntest.txtを作成して改行しながら1~100まで入力させます。"
fw = open("test.txt","w")
for line in range(0,100):
number = line + 1
if line == 0: fw.write("%s"%number)
else: fw.write("\n%s"%number)
fw.close()
print "入力が終了しました。\n"

print "次に、test2.txtを作成してタブで感覚をあけながら1~100まで入力させます。"
fw2 = open("test2.txt","w")
for line2 in range(0,100):
number = line2 + 1
if line2 == 0: fw2.write("%s"%number)
else: fw2.write("\t%s"%number)
fw2.close()
print "入力が終了しました。\n"

print "test.txtに入力した行数をこれから表示します。"
fr = open("test.txt","r")
for line in fr:
len_item = sum(1 for line in fr)
print "テキスト内には%s行あります。\n"%(len_item+1)
fr.close()

print "test2.txtに入力したをこれから表示します。"
fr2 = open("test.txt","r")
for line2 in fr2:
print line2,
print ''
fr2.close()
print "表示が終了しました。\n"

print "このプログラムは以上です。お疲れ様でした。\n"



2.説明?

いろいろと細かい小ネタをちょっと入れています。

例えば"test.txtに入力した行数をこれから表示します。"内で書いているsum(1 for line in fr)という書き方。

これはファイル内にどれだけの行数があるかを出してくれます。

しかも、外のfor line in frの中で回して求めるより、sum(1 for line in fr)で書いた方が高速に演算してくれるらしいです。

他にも、"test2.txtに入力したをこれから表示します。"内で

print line2,

print ''


という部分。こう書くことで、要素を一つずつプリントすることができます。


3. お世話になったサイト紹介

とても参考にさせていただいているサイト:『Pythonでファイルを読む

サンプルが多くあり、かなり重宝させていただいていますm(_ _)m