web-dev-qa-db-fra.com

Négation en Python

J'essaie de créer un répertoire si le chemin n'existe pas, mais le! (pas) opérateur ne fonctionne pas. Je ne suis pas sûr de savoir comment nier en Python ... Quelle est la bonne façon de faire cela?

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

L'opérateur de négation dans Python est not. Par conséquent, remplacez simplement votre ! par not.

Pour votre exemple, procédez comme suit:

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

Pour votre exemple spécifique (comme Neil l'a dit dans les commentaires), vous n'avez pas à utiliser le module subprocess, vous pouvez simplement utiliser os.mkdir() pour obtenir le résultat souhaité, avec une exception ajoutée gérer la bonté.

Exemple:

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.
189
Karl Nicoll

Python préfère les mots-clés anglais à la ponctuation. Utilisez not x, c'est-à-dire not os.path.exists(...). La même chose vaut pour && et || qui sont and et or en Python.

27
Cat Plus Plus

essayez plutôt:

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

En combinant les commentaires de tous les autres (utilisez pas, pas de parenthèses, utilisez os.mkdir), vous obtiendrez ...

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