今回も私がよく使う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 ''```
という部分。こう書くことで、要素を一つずつプリントすることができます。
#3. お世話になったサイト紹介
とても参考にさせていただいているサイト:『[Pythonでファイルを読む](http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/readfile.html)』
サンプルが多くあり、かなり重宝させていただいていますm(_ _)m