J'ai écrit le même programme (ouvrir un fichier texte et afficher son contenu) en C et C++. Maintenant je fais la même chose en Python (sur une machine Linux).
Dans les programmes C, j'ai utilisé le code :
if (argc != 2) {
/* exit program */
}
Question : Qu'est-ce qui est utilisé en Python pour vérifier le nombre d'arguments
#!/usr/bin/python
import sys
try:
in_file = open(sys.argv[1], "r")
except:
sys.exit("ERROR. Did you make a mistake in the spelling")
text = in_file.read()
print text
in_file.close()
Sortie de courant :
./python names.txt = Displays text file (correct)
./python nam = error message: stated from the sys.ext line (correct)
./python = error message: stated from the sys.ext line (wrong: want it to be a
separate error message stating *no file name input*)
0 votes
Duplicata possible de python et sys.argv
0 votes
Du point de vue de l'orientation objet, je peux comprendre pourquoi argc devrait être couplé à argv. S'il s'agissait de deux objets, ils pourraient être mutés de manière interdépendante l'un de l'autre. Il est logique que argc soit un attribut de argv (et non de sys), mais je ne suis pas sûr que ce soit le cas. len est le nom d'attribut défacto que j'utiliserais. argv.__len__ est critique pour des raisons mécaniques, et puisqu'il est là, cela n'a pas beaucoup de sens de lui donner un autre nom. J'aurais probablement préféré un descripteur de proxy sys du type
sys.argc = property(lambda self: len(self.argv)).__get__(sys, sys.__class__)
bien que