Il faudrait compter le nombre de lignes "------------------------" mais ça ne marche pas non plus Vous peut utiliser print("test") qui ne sera pas affiché dans la console, il renverra toujours 0. Mais par exemple la ligne print("hi") fonctionne. Le programme ne voit tout simplement pas ma boucle et je ne sais pas pourquoi. :(
def check_id(): with open('data.txt', 'r') as f: lines = f.readlines() ad = 0 print("hi") # this line works for i in lines: print("test") # this line doesn't work if i == "-------------------------": ad += 1 return str(ad)
Si j'ai besoin d'envoyer le code complet pour résoudre le problème, veuillez demander
J'ai changé le mode "a+" en "r" pour qu'il lit correctement les lignes, et c'est le cas, mais je n'arrive toujours pas à vérifier le tableau pour obtenir le nombre de lignes. Si vous avez des suppositions ou des solutions, veuillez les noter.
EDIT : Voici le code complet de mon data.py et le texte dans le fichier data.txt
from datetime import date date = date.today() def write_note(line): with open('data.txt', 'a') as f: if line == "!quit": f.write('\n') f.write("-------------------------") f.write('\n') ad = check_id() f.write(ad) f.write('\n') f.write("________________________") f.write('\n') else: f.write(line) f.write("\n") def read_note(id): with open('data.txt', 'r') as f: pass def see_all(): with open('data.txt', 'r') as f: get_lines = f.readlines() for i in get_lines: print(i) return get_lines def del_note(ad): with open('data.txt', 'a') as f: pass def logs(): pass def check_id(): with open('data.txt', 'r') as f: ad = 0 for i in f: if i == "-------------------------": ad += 1 return str(ad)
Maintenant, c'est un fichier txt :
fugy hello hai bebra ------------------------- 0 ________________________ uha imna fsjfoe geso;rsevdn ------------------------- 0 # This one ________________________
J'essaie de créer un cahier pour pouvoir écrire des notes et les lire. Supprimer la fonction, je le ferai plus tard. L'idée est d'agrandir ce zéro à chaque fois que vous ajoutez une annotation.
Je pense que le problème est que votre data.txt
文件(可能是空的,因为您提到 "test"
在控制台中不可见,这意味着该脚本不在 for
循环中运行,在其他word: lines
itérateur est de longueur nulle).
J'ai écrit un code fonctionnel, vous pouvez voir le code et le fichier de test avec la sortie du script ci-dessous.
Code :
def check_id(): with open('data.txt', 'r') as opened_file: ad = 0 print("hi") # this line works for i in opened_file: print("test") # this line doesn't work if i == "-------------------------": ad += 1 return str(ad) result = check_id() print(f"result: {result}")
data.txt
contenu :
test_1 ------------------------- test_2 ------------------------- test_3 ------------------------- test_4
Test :
> python3 test.py hi test test test test test test test result: 0
Éditeur :
op a partagé le code source complet et utilisé data.txt
,其中包含cr
lf
字符(有关该字符的详细信息)。这意味着必须使用 rstrip
, qui contient des caractères cr
lf
(Détails sur ce personnage). Cela signifie que ces lignes doivent être entrelacées à l'aide de la méthode rstrip
.
Dans ce cas, seule la fonction check_id
est pertinente, je partage donc uniquement la fonction modifiée :
def check_id(): with open('data.txt', 'r') as f: ad = 0 for i in f: # The cr and lf characters should be removed from line. Please see the above reference for details. if i.rstrip() == "-------------------------": ad += 1 return str(ad) result = check_id() print(result). # Result is 4
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!