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

コメント