Cet article présente principalement la méthode de lecture du texte txt ligne par ligne et de suppression des doublons sous python3.4.3. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Les problèmes auxquels il convient de prêter attention lors de la lecture et de l'écriture de fichiers incluent :
1. Codage des caractères2. Fermez immédiatement le descripteur de fichier. une fois l'opération terminée3. Compatibilité des codes
Plusieurs méthodes :
#!/bin/python3 original_list1=[" "] original_list2=[" "] original_list3=[" "] original_list4=[" "] newlist1=[" "] newlist2=[" "] newlist3=[" "] newlist4=[" "] newtxt1="" newtxt2="" newtxt3="" newtxt4="" #first way to readline f = open("duplicate_txt.txt","r+") # 返回一个文件对象 line = f.readline() # 调用文件的 readline()方法 while line: original_list1.append(line) line = f.readline() f.close() #use "set()" remove duplicate str in the list # in this way,list will sort randomly newlist1 = list(set(original_list1)) #newlist1 = {}.fromkeys(original_list1).keys() #faster #rebuild a new txt newtxt1="".join(newlist1) f1 = open("noduplicate1.txt","w") f1.write(newtxt1) f1.close() ################################################################### #second way to readline for line in open("duplicate_txt.txt","r+"): original_list2.append(line) newlist2 = list(set(original_list2)) newlist2.sort(key=original_list2.index) #sort #newlist2 = sorted(set(original_list2),key=l1.index) #other way newtxt2="".join(newlist2) f2 = open("noduplicate2.txt","w") f2.write(newtxt2) f2.close() ################################################################### #third way to readline f3 = open("duplicate_txt.txt","r") original_list3 = f3.readlines() #读取全部内容 ,并以列表方式返回 for i in original_list3: #遍历去重 if not i in newlist3: newlist3.append(i) newtxt3="".join(newlist3) f4 = open("noduplicate3.txt","w") f4.write(newtxt3) f4.close() ################################################################### #fourth way f5 = open('duplicate_txt.txt',"r+") try: original_list4 = f5.readlines() [newlist4.append(i) for i in original_list4 if not i in newlist4] newtxt4="".join(newlist4) f6 = open("noduplicate4.txt","w") f6.write(newtxt4) f6.close() finally: f5.close()
Résultat :
Avant déduplication :
Après déduplication (non ordonnée) :
Après déduplication (ordonnée) :
Résumé
Le programme ci-dessous implique des opérations de lecture et d'écriture de fichiers et des opérations de liste chaînée. début de l'article C'est une question comme je n'utilise pas le chinois, je m'en fiche de l'encodage, mais je dois quand même le mentionner ici :f = open("test.txt","w") f.write(u"你好")
f = open("test.txt","w") text=u"你好" text=text.encode(encoding='utf-8') f.write(text)
À propos de close() :
Que se passera-t-il si vous ne Je ne le ferme pas ? Et l'impact ? Une fois l'opération terminée, ne pas fermer le fichier entraînera un gaspillage de ressources système, car le nombre de descripteurs de fichiers pouvant être ouverts par le système est limité. Linux est 65535. De manière générale, tout ira bien après la fermeture, mais il peut y avoir des situations particulières. Par exemple, une erreur s'est produite lors de l'appel de la fonction open() et les autorisations sont définitivement insuffisantes. signaler une erreur. Une autre méthode est que s'il n'y a pas suffisamment d'espace disque pendant write(), une erreur sera signalée et close() n'aura aucune chance de s'exécuter. La bonne façon est d'utiliser try except pour intercepter l'exception :f = open("test.txt","w") try: text=u"你好" text=text.encode(encoding='utf-8') f.write(text) except: IOError as e: print("oops,%s"%e.args[0]) finally: f.close()
with open("test.txt","w") as f: text=u"你好" f.write(text.encode(encoding='utf-8'))
Concernant les problèmes de compatibilité :
Les fonctions open() de python2 et python3 sont différentes. Ces dernières peuvent spécifier des caractères dans la fonction Encoding. format. Comment résoudre le problème de compatibilité open() entre python2 et python3 ? Utiliser la fonction open() sous le module io.io.open en python2 est équivalent à la fonction open de python3from io import open with open("test.txt","w",encoding='utf-8') as f: f.write(u"你好")
Exemples de décompression de fichiers zip et de suppression de fichiers sous python_python
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!