
PHPでは外部ファイルの読み込みには、file_get_contentsやfile関数など色々使っていましたが、Pythonでも同様に取り扱いが可能です。今回は簡単に一通り事例をまとめてメモ書きをしておきます。※文字コードはすべてUTF-8で取り扱います。
ファイルの読み込み関係
ファイルを開く
fopenみたいなものがPHPであったと思いますけど、同じようなものです。
///外部ファイル
//test.txt(猫ねこねこ と記載してある)
///ファイル名と読み込み時のエンコードを指定する
fon=open('./test.txt',encoding='utf-8')
print(fon)
///実行結果
<_io.TextIOWrapper name='./test.txt' mode='r' encoding='utf-8'>
///読み込んだファイル名、モードはread、エンコードはutf-8と詳細が出ている
ファイルを読み込む
上記に続けて、読み込みを実行する
fon=open('./test.txt',encoding='utf-8')
read_data=fon.read()
print(read_data)
///実行結果(ファイルの中身がread_dataに格納され、表示される)
猫ねこねこ
ファイルのクローズ
ファイルの操作は、終わったらリソースの解放のため、ちゃんと閉じないといけない。
fon.close()
ところで、with文を使うと、途中でエラーが出て止まろうが、ファイルを閉じてくれるらしい。
with open('./test.txt',encoding='utf-8') as fon:
read_data=fon.read()
print(read_data)
////実行結果
猫ねこねこ
ファイルの書き込み関係
流れは読み込みと同じ、開く(書き込みモードで)、書き込む、閉じるの流れ
ちなみに、ファイルは存在しなくてもいい。ない場合は作られるからエラーにならない
with open('./test.txt','w',encoding='utf-8') as fon:
fon.write("¥n犬いぬいぬ¥n")
fon.close()
///¥は、macではバックスラッシュとして入力しないといけません
///ファイルの中身を確認すると以下のとおり
犬いぬいぬ
////書き込みなので、元の内容は消える
///追記モードで開いて処理する
with open('./test.txt','a',encoding='utf-8') as fon:
fon.write("¥n猫ねこねこ¥n")
fon.close()
///ファイルの中身を確認すると以下のとおり
犬いぬいぬ
猫ねこねこ
モジュールの読み込み関係
PHPでは関数とか定義したファイルをrequireで読み込んで使ったりしてるが、Pythonではimportで同じことができる。
以下ファイルを作成
///func_test.pyに以下内容で書き込む
def sum_test(a,b):
return a+b
///実行ファイルに以下を記載
import func_test
print(func_test.sum_test(1,2))
///実行結果
3
読み込む時には、拡張子はつけない。で、モジュール名.関数 という感じで実行できる。
つまり、別ファイル名であれば、同じ関数を作れるということになる。
モジュール名が長い場合には、asで別名つけてもいける
///実行ファイルを以下に変更
import func_test as aa
print(aa.sum_test(1,2))
////実行結果
3
///特定関数のみのimportもできる
from func_test import sum_test
print(sum_test(1,2))
////実行結果
3