Отрицание в Python - PullRequest
       14

Отрицание в Python

125 голосов
/ 25 мая 2011

Я пытаюсь создать каталог, если путь не существует, но! (не) оператор не работает. Я не уверен, как отрицать в Python ... Какой правильный способ сделать это?

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

Ответы [ 4 ]

182 голосов
/ 25 мая 2011

Оператор отрицания в 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.
27 голосов
/ 25 мая 2011

Python предпочитает английские ключевые слова пунктуации.Используйте not x, то есть not os.path.exists(...).То же самое касается && и ||, которые * Python and и or

12 голосов
/ 25 мая 2011

попробуйте вместо:

if not os.path.exists(pathName):
    do this
1 голос
/ 25 мая 2011

Комбинируя ввод от всех остальных (не используйте, без паренов, используйте os.mkdir), вы получите ...

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