def 小児科医():

かけだし小児科医が仕事の合間にプログラミングを勉強するブログです。

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

前回

 

defpediatric.hatenablog.com

 

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

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

 

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

 

 

 

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モジュールを使えば変数ごと保存することができる。

 

次回は「ファイル管理」