0
votes

Comment imprimer toutes les majuscules dans un fichier

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)


2 commentaires

si ligne = ligne.isapper () assigne quelque chose à ligne , ne vérifiant pas pour voir s'il est tout majuscule (la différence entre = et == ).


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.


4 Réponses :


0
votes

Pour vérifier l'égalité, utilisez == . Cependant, je suis sûr que vous recherchez isupper par lui-même, ne pas le vérifier pour l'égalité. ispper renvoie un booléen, qui peut être vérifié par votre si instruction: xxx


0 commentaires

0
votes

Votre si instruction utilise = utilisé pour l'affectation, non à comparaison. Utilisez plutôt == . De plus, string.isapper () 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.


1 commentaires

Merci pour vos commentaires, le = était une erreur. Je ne voulais pas le taper là-bas.



0
votes

Vous pouvez utiliser la fonction code> Filtre code> à la place:

for line in filter(str.isupper, fhand):
    print(line)


0 commentaires

-1
votes

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()


2 commentaires

Ce n'était pas moi, mais je suppose que c'est parce que vous avez déclaré avec est un remplacement direct pour essayer - sauf , ce que ce n'est pas. ( avec est un remplacement pour Essayez - enfin .) Le Essayez - sauf 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: /