サーチ…


前書き

このモジュールは、オペレーティングシステムに依存する機能を移植可能な方法で提供します。

構文

  • 輸入OS

パラメーター

パラメータ詳細
パスファイルへのパス。パス区切りは、 os.path.sepによって決定されます。
モード目的のパーミッションを8進数で(例えば0700

ディレクトリを作成する

os.mkdir('newdir')

権限を指定する必要がある場合は、オプションのmode引数を使用できます。

os.mkdir('newdir', mode=0700)

現在のディレクトリを取得する

os.getcwd()関数を使用します。

print(os.getcwd())

オペレーティングシステムの名前を決定する

osモジュールは、コードが現在実行されているオペレーティングシステムのタイプを決定するためのインタフェースを提供します。

os.name

これは、Python 3で次のいずれかを返すことができます:

  • posix
  • nt
  • ce
  • java

より詳細な情報はsys.platformから取得できます

ディレクトリを削除する

pathのディレクトリを削除しpath

os.rmdir(path)

ディレクトリを削除するためにos.remove()を使用しないでください。この関数はファイル用であり、ディレクトリ上でこの関数を使用するOSError

シンボリックリンク(POSIX)

場合によっては、シンボリックリンクのターゲットを決定する必要があります。 os.readlinkはこれを行います:

print(os.readlink(path_to_symlink))

ファイルのアクセス許可を変更する

os.chmod(path, mode)

modeは8進数で希望の許可です。

makedirs - 再帰的なディレクトリ作成

次の内容のローカルディレクトリを指定します。

 └── dir1
     ├── subdir1
     └── subdir2

既存のディレクトリdir2の下にsubdir1、subdir2と同じサブディレクトリを作成します。

import os

os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")

これを実行すると

├── dir1
│   ├── subdir1
│   └── subdir2
└── dir2
    ├── subdir1
    └── subdir2

dir2は、subdir1の作成のために必要なときに初めて作成されます。

代わりにos.mkdirを使用した場合、dir2はまだ存在しないため、例外が発生します。

    os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'

os.makedirsは、ターゲット・ディレクトリがすでに存在する場合はそれを好まないでしょう。再実行した場合:

OSError: [Errno 17] File exists: './dir2/subdir1'

ただし、例外をキャッチしてディレクトリが作成されたことを確認することで、これを簡単に修正できます。

try:
    os.makedirs("./dir2/subdir1")
except OSError:
    if not os.path.isdir("./dir2/subdir1"):
        raise

try:
    os.makedirs("./dir2/subdir2")
except OSError:
    if not os.path.isdir("./dir2/subdir2"):
        raise


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow