Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

Pythonエンジニア育成推進協会監修 Python実践レシピ(3)

Pythonエンジニア育成推進協会監修 Python実践レシピ(2) - Mae向きなブログ」の続きです。

Chapter 11 ファイルとディレクトリへのアクセス

from pathlib import Path
TEST_PATH = "/Users/foo/tmp/hoge.pdf"

# ファイル名の取得
print(Path(TEST_PATH).name)
# 拡張子なしのファイ名の取得
print(Path(TEST_PATH).stem)
# 拡張子の取得
print(Path(TEST_PATH).suffix)
# 親ディレクトリの取得
print(Path(TEST_PATH).parent)
# CWDの取得
print(Path.cwd())
# ユーザホームディレクトリの取得
print(Path.home())

Chapter 12 データ圧縮、アーカイブと永続化

gzipコマンドがない環境でも、pythonコマンドの-mオプションを指定することで、コマンドラインで実行できる。

% python -m gzip -h
usage: gzip.py [-h] [--fast | --best | -d] [file ...]

A simple command line interface for the gzip module: act like gzip, but do not delete the input file.

positional arguments:
  file

optional arguments:
  -h, --help        show this help message and exit
  --fast            compress faster
  --best            compress better
  -d, --decompress  act like gunzip instead of gzip
日本語のファイル名を扱う

ZIPファイル中の圧縮されたファイル名に日本語が含まれているとき、環境依存の文字コードでファイル名が格納されている場合があり、注意が必要。

Chapter 13 特定のデータフォーマットを扱う

CSVファイルを扱う
  • 辞書データを用いたCSVファイルの読み込みと書き込みは便利そう
  • csvモジュールのSnifferクラスは、CSVファイルのデータ形式を推測するためのクラス
Excelを扱う
  • Excel VBAが苦手なので、仕事でExcelを扱うときは、RubyExcelファイルを操作してきましたが、openpyxlは便利そうですね。
  • Excel自体がインストールされていなくてもExcelファイルの読み書きができる。
Pillow thumbnails.py
  • /tmp/jpegは、Pathlibを用いているのに対し、save_thubnail_pathについては、文字列で扱っている点が少し疑問に感じました。あまり気にすることではないのでしょうか?