Python入門(6.ファイル)です。
ファイルとディレクトリのアクセスについては以下が参考になります。
また、osモジュール、ioモジュール、open()関数についても参照してください。
Linuxシステムコール・APIも参照のこと。
まず、open()とwithでファイルを開く。modeは'r'が読み込み、'w'が書き込み、'x'が新規作成、'a'が追記。
ファイルを読み込むには、read()はファイル内容を全て読み込む、readline()は一行読み込む、readlines()はすべて読み込んだ上で、行ごとのリストにする、などがある。
ファイルを書き込むには、write()は文字列を書き込む、writelines()はリストを書き込む、がある。
たとえば、
hogefile = open("hoge.txt") lines = hogefile.read() print(lines) hogefile.close()
となる。
あるいは、withを使った場合、
with open("hoge.txt") as hogefile: lines = hogefile.read() print(lines)
などとなる。withを使う場合、ブロックが終了した段階で自動的にclose()される。
一行ずつ読み込むならば、readline()を使う方法もあるが、ファイルオブジェクトをそのままfor文に渡しても一行ずつ読み込める。
with open("hoge.txt") as hogefile: for line in hogefile: print(line)
書き込む際にはmodeにwを指定してopen()する。
str = "Hoge Fuga Foo Bar" with open("hoge.txt", mode='w') as hogefile: hogefile.write(str)
「mode=」を記述せずopen()の第二引数にそのまま'w'を指定してもよい。
CSVファイルの読み書きは、csvモジュールから行える。
たとえば、CSVファイルを出力するには、
import csv hoge_data = [('Assy', 32), ('Schwarz', 18), ('Zaidou', 28)] with open('hoge.csv', 'w', encoding="utf-8", newline='') as hoge_file: csv.writer(hoge_file).writerows(hoge_data)
とする。
CSVファイルを入力するには、
import csv with open('hoge.csv', encoding="utf-8") as hoge_file: hoge_reader = csv.reader(hoge_file, delimiter=',') for row in hoge_reader: print(row)
とする。
詳しくは以下の書籍・ページが参考になる。
XMLと文書形式も参照のこと。
JSONを用いてPythonのオブジェクトを直列化する方法についてはJSONを参照のこと。