web-dev-qa-db-ja.com

Pythonの否定

パスが存在しない場合、ディレクトリを作成しようとしていますが、! (not)演算子は機能しません。 Pythonで否定する方法がわかりません...これを行う正しい方法は何ですか?

if (!os.path.exists("/usr/share/sounds/blues")):
        proc = subprocess.Popen(["mkdir", "/usr/share/sounds/blues"])
        proc.wait()
122
David Mulder

Pythonの否定演算子はnotです。したがって、!notに置き換えるだけです。

たとえば、次のようにします。

if not os.path.exists("/usr/share/sounds/blues") :
    proc = subprocess.Popen(["mkdir", "/usr/share/sounds/blues"])
    proc.wait()

特定の例(ニールがコメントで述べたように)では、subprocessモジュールを使用する必要はありません。単に os.mkdir() を使用して、必要な結果を取得し、例外処理の良さを追加できます。

例:

blues_sounds_path = "/usr/share/sounds/blues"
if not os.path.exists(blues_sounds_path):
    try:
        os.mkdir(blues_sounds_path)
    except OSError:
        # Handle the case where the directory could not be created.
180
Karl Nicoll

Pythonは句読点よりも英語のキーワードを好みます。 not x、つまりnot os.path.exists(...)を使用します。 Pythonのandorである&&||についても同じことが言えます。

26
Cat Plus Plus

代わりに試してください:

if not os.path.exists(pathName):
    do this
11
mshell_lauren

他の全員からの入力を結合する(使用しない、括弧なし、os.mkdirを使用する).

specialpathforjohn = "/usr/share/sounds/blues"
if not os.path.exists(specialpathforjohn):
    os.mkdir(specialpathforjohn)
1
chmullig