Les problèmes que je cours est qu'il n'imprime rien.
Y a-t-il quelque chose qui ne va pas avec ma déclaration si? parce qu'il imprimait tout le txt. Fichez quand je n'ai pas ajouté la déclaration IF. P>
fname = input('Enter the file name: ')
try:
fhand = open(fname)
except:
print('File cannot be opened:', fname)
exit()
for line in fhand:
line = line.strip()
if line.isupper():
print(line)
4 Réponses :
Pour vérifier l'égalité, utilisez == code>. Cependant, je suis sûr que vous recherchez isupper code> par lui-même, ne pas le vérifier pour l'égalité. ispper code> renvoie un booléen, qui peut être vérifié par votre si code> instruction:
Votre si code> instruction utilise = code> utilisé pour l'affectation, non à comparaison. Utilisez plutôt == code>. De plus, string.isapper () code> est un booléen en soi, vous comparez donc une chaîne à un booléen, qui ne donnera pas le résultat que vous souhaitez. P>
Merci pour vos commentaires, le = était une erreur. Je ne voulais pas le taper là-bas.
Vous pouvez utiliser la fonction code> Filtre code> à la place:
for line in filter(str.isupper, fhand):
print(line)
Il pourrait être plus idiomatique d'ouvrir le fichier à l'aide d'une instruction, plutôt que d'essayer / sauf si elle gère la fermeture du fichier une fois que l'objet atteint la fin de la portée. https://docs.python.org/3.6/ Didacticiel / INPETOutPUTPUT.HTML # Fichiers de lecture et d'écriture
import os
path_to_file = "/path/to/file"
if os.path.isfile(path_to_file):
with open(path_to_file, 'r') as fileobj:
for line in fileobj:
if line.strip().isupper():
print(line)
else:
print("Please pass valid path to file")
exit()
Ce n'était pas moi, mais je suppose que c'est parce que vous avez déclaré avec code> est un remplacement direct pour essayer code> - sauf code>, ce que ce n'est pas. ( avec code> est un remplacement pour Essayez code> - enfin code>.) Le Essayez code> - sauf code> Ici a été utilisé pour vérifier si le fichier existait.
Merci, c'est compréhensible, je vais vous assurer que je m'assurerai des contrôles complètes :) Je pensais que path_to_file était suffisant pour suggérer que la validation du chemin avait / aurait dû être effectuée avant / ouvert Combo: /
si ligne = ligne.isapper () code> assigne quelque chose àligne code>, ne vérifiant pas pour voir s'il est tout majuscule (la différence entre= code> et== code>).J'ai découvert mes problèmes maintenant, Open () ne me donne pas à lire () le fichier, j'ai besoin de la méthode de lecture () pour pouvoir fonctionner avec le fichier.