-1
votes

Python: le code ne prend pas la sélection de toutes les valeurs de chaîne dans la liste

J'ai créé le code suivant pour créer un certain nombre de dossiers xxx

lorsque j'exécute le programme, il ne génère qu'un seul dossier pour l'Arabie saoudite. J'ai essayé de l'exécuter plusieurs fois, mais cela ne générera pas de nouveaux dossiers. Je suppose que j'ai besoin de faire quelque chose comme la boucle, mais je ne suis pas sûr de la faire (toujours un novice à Python). Merci d'avance.


2 commentaires

Vous devez créer les répertoires dans la boucle. Comme c'est le cas, vous créez simplement un répertoire dont le nom est déterminé par le nom de famille attribué à chemin dans la boucle précédente. (L'Arabie Saoudite se trouve juste le dernier élément de la Set , pas la liste, sur laquelle vous êtes itération.)


L'appel à OS.MKDIR () n'est pas indenté sous la boucle de la boucle.


3 Réponses :


2
votes

Vous n'avez pas placé la partie "Création de répertoire" dans votre boucle.
Cela devrait fonctionner, essayer de comprendre la différence:

import os

Country = {"Albania - AL",
"Armenia - AM",
"Austria - AT",
"Bahrain - BH",
"Belarus - BY",
"Belgium - BE",
"Bulgaria - BG",
"Canary Islands - KY",
"Croatia - HR",
"Cyprus - CY",
"Czech Republic - CZ",
"Denmark - DK",
"Estonia - EE",
"Finland - FI",
"France - FR",
"Germany - DE",
"Greece - GR",
"Hungary - HU",
"Iceland - IS",
"Ireland - IE",
"Israel - IL",
"Italy - IT",
"Latvia - LV",
"Lithuania - LT",
"Luxembourg - LU",
"Malta - MT",
"Morocco - MA",
"Netherlands - NL",
"Norway - NO",
"Poland - PL",
"Portugal - PT",
"Romania - RO",
"Russian Federation - RU",
"Saudi Arabia - SA",
"Serbia - RS",
"Slovakia - SK",
"Slovenia - SI",
"South Africa - ZA",
"Spain - ES",
"Sweden - SW",
"Switzerland - CH",
"Turkey - TR",
"United Arab Emirates - AE",
"United Kingdom Of Great Britain And Northern Ireland - UK",
}

for x in Country:
    path = ("C:/Users/thrnma/Documents/VAT Reporting/" + x)

    try:
        os.mkdir(path)
    except OSError:
        print ("Creation of the directory %s failed" % path)
    else:
        print ("Successfully created the directory %s " % path)


1 commentaires

Ah, c'était l'indent. Logique. Merci!



2
votes

Fixez simplement l'indentation de votre bloc d'essai. C'est tout.

Cela devrait être quelque chose comme ceci: xxx


0 commentaires

0
votes

mettre le os.mkdir (chemin) code> partie à l'intérieur de la boucle.

for x in Country:
    path = ("C:/Users/thrnma/Documents/VAT Reporting/" + x)

    try:
        os.mkdir(path)
    except OSError:
        print ("Creation of the directory %s failed" % path)
    else:
        print ("Successfully created the directory %s " % path)


0 commentaires