ひさふぃの日記

DjangoとPythonとLaravelが好き。大阪でフリーランスエンジニアやってます。

入門Python3のメモ 10章|システム

Pythonの入門書として各所でオススメされている入門Python3。

shikouno.hatenablog.com

前半7章までで基本をおさらいし、後半8章からは他分野で活用できそうなちょっとした応用編がオールインワン。みんなのPython 第4版の次に読むとちょうどいいレベル感。

その際、初めて知る箇所や曖昧でいつも検索する箇所を後で見返せるようにメモしておこうかと。

そのため、このメモは僕の知識的偏りから生み出されたものであることを最初にお断りしておきます。気になった方は書籍を購入してください。

入門 Python 3

ちなみに、1章は導入なのでメモがありませんが、1.2 Pythonと多言語の比較は面白いので必見!著者の冗談も随所に入っていて、面白くていい本です。

英語版はPDFが無料で公開されています。よろしければ!

Introducing Python

後半8章からは色んな分野に渡る知識が書いてあるため、広く浅くの内容になっています。大まかな概要を掴んだり、検索時に活用するワードのピックアップという読み方・メモり方になる予定。

ファイル・ディレクトリ操作

  • 10.1.1 open()による作成
  • 10.1.4 copy()によるコピー
  • 10.1.6 link()、symlink()によるリンク作成
  • 10.1.7 chmod()によるパーミッションの変更
  • 10.1.8 chown()によるオーナーの変更
  • 10.1.9 abspath()によるパス名の取得
  • 10.1.10 realpath()によるシンボリックリンクパス名の取得
  • 10.2.1 mkdir()による作成
  • 10.2.4 chdir()によるカレントディレクトリの変更
  • 10.2.5 glob()によるパターンにマッチするファイルのリストの作成

ファイル操作する場合、繰り返さない操作であればターミナルに叩けばいいですし、繰り返す操作もシェルスクリプトを書けばいいですよね。

しかし、シェルスクリプトを書けない僕にとって、Pythonでファイルやディレクトリの操作ができるのはありがたい。

基本的にはosモジュールの関数。パスに関係するabspathとrealpathは、os.pathのメソッド。

copyはshutilモジュールの関数。globはglobモジュールの関数。

glob

globは初見のコマンドでした。正規表現に似てますがより簡単。

*:全てものにマッチ ?:任意の1字にマッチ [abc]:a、b、cのいずれかにマッチ [!abc]:a、b、c以外にマッチ

Python以外のプログラムを起動

  • 10.3.1 subprocessによるプロセスの作成

subprocessモジュールを用いることで、Pythonのコードからシェルにアクセスしてプログラムの起動ができる。

Pythonばかり触っている現時点での僕には有効な活用法が思いつきませんが、将来的に組み合わせる際に思い出せるようにしておきたいところ。

getoutput関数は引数にとったコマンドを実行して出力を返す。call関数は返り値がなく、終了ステータスが表示されるのみ。

さいごに

他プログラムの実行方法は前から気になっていたのでsubprocessを知れて嬉しいです。タイトルだけで読むところを決めていたら絶対に読まなかったので通読してよかった!

あとはglob。正規表現よりも手軽で便利そうですね。まだまだ知らない便利なシェルコマンドがありそうですし、シェル芸なるものあるようなので勉強したい。知りたいことが増え続けるプログラミングの世界すごいわ。

最後までお読みいただきありがとうございます。それじゃ!

入門 Python 3

入門 Python 3