退屈なことはPythonにやらせよう 第2版 読んでみた⑨

最近読むの飽きてはや1−2ヶ月くらい。

9章なのにまだ半分も読めてない。分厚すぎんだよこの本。

今回は「ファイルの読み書き」

  • pathlib
  • パス操作
  • ファイル操作

pathlib

ググってコードを書いている身からするとパスの管理はos.pathで行っていたのだが、どうやらPython3.6からPathlibに標準ライブラリとして導入されているらしい。

from pathlib import Path
import os

Path.cwd() #カレントディレクトリの取得
os.chdir() #カレントディレクトリの変更
Path.home() #ホームディレクトリの取得
os.makedirs() #新規ディレクトリの作成
Path.cwd().is_absolute() #取得したパスが絶対パスかどうか

コマンドラインでいうところの

Path.cwd()=pwd

os.chdir()=cd

os.makedirs()=mkdir

的な感じなのだろうか。

パス操作

g.glob()は特定の条件のパスを取得できる。

ただし返すのはジェネレーターオブジェクトなので、中身を表示するにはlist()に渡さないといけない。

p = Path('ファイル名')
list(p.glob('*')) #ファイル内のディレクトリ、ファイルの一覧のリストを取得
list(p.glob('*.txt')) #ファイル内のtxtファイルの一覧のリストを取得

ファイル操作

path関数で行う方法

p = Path("テキストファイル名.txt")
p.write_text("Hello, World!")

ただ、複雑な操作はできないので、基本的にはopen関数を使う

spam = open("spam.txt", 'w') #'w'で書き込みモード
spam.write("Hello, world!")
spam.close()
spam = open("spam.txt") #デフォルトは読み込みモード
spam_r = spam.read()
print(spam_r)
#Hello, world!

これで、テキストファイルを読み込んだり、書き込んだりできた。

さらにpythonデータをファイルに保存する場合はshelveモジュールを使えば変数ごと保存することができる。

次回は「ファイル管理」

コメント

タイトルとURLをコピーしました