こんにちは。
結構間があいちゃいましたが、ちゃんと諦めず読んどります。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
今回は、正規表現やファイルの読み書き、ファイル操作あたりの基礎編でした。
普段自分が使用しているphpとほぼほぼ変わりない動きをするものだらけでしたので、パラパラと読み進めていきましたが、その中でも、勉強になったなー、おもしろいなーと思ったところを、記事として残しておこうとお思います。
勉強になったところ
os.path.join()
windwosでもmac/linuxでもディレクトリセパレータを気にせず書けるためのものです。
import os path = os.path.join('', 'Users', 'kojirock', 'project') print(path) >>> Users/kojirock/project
頭に/
をつけたい場合はどうせばよいのかなーと思って調べてたんですが、os.path.sep
を使えば良いみたいです。
import os path = os.path.sep + os.path.join('Users', 'kojirock', 'project') print(path) >>> /Users/kojirock/project
shelveモジュール
shelveは、データをバイナリファイルで保存したり、取り出したりできるものです。
# 保存 import shelve shelf_file = shelve.open('data') movie_title = ['アニマルプラネット', '海底鬼岩城'] shelf_file['movie_titles'] = movie_title shelf_file.close() # 呼び出し shelf_file = shelve.open('data') print(shelf_file['movie_titles']) >>> ['アニマルプラネット', '海底鬼岩城']
↑の例だとカレントディレクトリにdata.db
というファイルでバイナリファイルが保存されます。
webサービスだと、RDB的なのに保存すると思うのですが、これはライブラリ的ものを作った時に使用するのかな?
shutil.rmtree()
引数に指定したパス以下のディレクトリ・ファイルを再帰的に削除します。
# ディレクトリとファイル作成 import os os.mkdir('test') for i in range(5): open('test/' + str(i + 1) + '.txt', 'w') print(os.path.exists('test')) print(os.listdir('test')) >>> True >>> ['5.txt', '4.txt', '3.txt', '2.txt', '1.txt'] # ファイル削除 import shutil shutil.rmtree('test') print(os.path.exists('test')) >>> False
強制的に消すので rm -rf
的な感じですかね。
phpではrmtreeと同義の標準関数はないと思うので、exec('rm -rf /path/to')
できな感じでやるしかないと思います。
怖いけど面白い機能でした。
raise
pythonで例外を起こす命令文です。phpのthrow的なノリだと思います。
name = 'ドラえもん' if not name == 'のび太くん': raise Exception('のび太くんじゃないじゃない!') >>> Exception: のび太くんじゃないじゃない!
終わりに
今回はパラパラーと読み進めてしまったのですが、正規表現・ファイルの読み書きあたりでこれはpython独自だぜ!っていうのがあればぜひ教えてください。
次回からは、応用 ではでは。