Python中的否定

时间:2011-05-24 22:38:35

标签: python negation

如果路径不存在,我正在尝试创建一个目录,但是! (不)运算符不起作用。我不确定如何在Python中否定...这样做的正确方法是什么?

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

4 个答案:

答案 0 :(得分:179)

Python中的否定运算符是not。因此,只需将!替换为not

对于您的示例,请执行以下操作:

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

对于您的具体示例(正如Neil在评论中所说),您不必使用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.

答案 1 :(得分:26)

Python更喜欢英文关键字来标点符号。使用not x,即not os.path.exists(...)。对于&&||,同样的事情也适用于Python中的andor

答案 2 :(得分:11)

尝试改为:

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

答案 3 :(得分:1)

结合来自其他人的输入(不使用,不使用parens,使用os.mkdir)你会得到......

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