55
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonでのファイル操作をosとpathlibで比較

Last updated at Posted at 2018-04-26

概要

ファイル操作する上で書き慣れたosos.pathからpathlibに移行する上で頻出なファイル操作をまとめた。

背景

Python3で書いているなら、シンプルかつオブジェクト指向でファイルを操作できるpathlibに移行しない理由がないのですが、既存のos.pathによるファイル操作とUIが大きく変わっているので、都度ググらずに済むように作りました。

基本

簡単のため、どれも

import os
import pathlib

をしているとします。

絶対Pathの取得

# os
os.path.abspath("foo.txt")
# pathlib
pathlib.Path("foo.txt").resolve()

ファイル削除

# os
os.remove("foo.txt")
# pathlib
pathlib.Path("foo.txt").unlink()

ディレクトリ削除

# os
os.rmdir("bar")
# pathlib
pathlib.Path("bar").rmdir()

拡張子の取得

# os
os.path.splitext("foo.txt")[1]
# pathlib
pathlib.Path("foo.txt").suffix

ファイル名の取得

# os
os.path.basename("bar/foo.txt")
# pathlib
pathlib.Path("bar/foo.txt").name

ディレクトリ以下の出力(要はlsコマンド)

#os
os.listdir("bar")
#pathlib
pathlib.Path("bar").iterdir()

応用

親ディレクトリの取り方

# os
os.path.dirname(os.path.abspath(__file__))
# pathlib
pathlib.Path(__file__).resolve().parent

Pathの結合

# os
os.path.join("foo", os.path.join("bar", "baz"))
# pathlib
pathlib.Path("foo") / "bar" / "baz"

あとがき

また開発していて思いついたら追記していきます。リクエストなどもあればコメントください。

55
55
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?