Supprimer les apostrophes d'un sys.argv script python

Bonjour,

J’ai un problème avec un script python, lors de l’utilisation d’un sys.argv des ’ viennent de mettre de chaque côté de la variable, et cela n’est pas souhaité, ex :

Si ma variable est 19 :

datatemp = {
	'value':sys.argv[1]
}
print(datatemp)

valeur retournée : 'value':'19'

autre test :

variablebis = 19
datatemp = {
	'value':variablebis
}
print(datatemp)

valeur retournée : 'value':19
là c’est parfait, c’est le résultat que je veux, donc on test avec le sys.argv :

variablebis = sys.argv[1]
datatemp = {
	'value':variablebis
}
print(datatemp)

valeur retournée : 'value':'19'
A devenir fou… Savez-vous pourquoi ces ’ se rajoutent automatiquement mais QUE lorsque j’utilise sys.argv ? Et surtout comment les supprimer ^^

Merci :slight_smile:

Salut,

c’est parce qu’un argument est une chaîne de caractères alors que ta variablebis est initialisée comme un int(). Tu peux utiliser le module argparse et préciser le type de variable que tu veux pour chaque paramètres passés en argument pour avoir une conversion automatique.

Merci !!! :grin:

Rajouter la commande int() a résolu le problème :slight_smile:

datatemp = {
	'value':int(sys.argv[1])
}
print(datatemp)

valeur retournée : 'value':19

Petite mise à jour, j’ai lu la Doc de la fonction int() et en fait son but est d’enlever les décimales, effectivement j’ai essayé en donnant la valeur 19.5 à ma variable et le résultat est 19.

Donc au final j’ai utilisé la fonction float() :

datatemp = {
	'value':float(sys.argv[1])
}
print(datatemp)

Qui transforme bien la chaine de caractères en nombre tout en gardant les décimales :slight_smile:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.