2017-03-24 4 views
-1

"Conserver l'entrée nous obtenons de l'utilisateur dans le fichier texte après avoir exécuté notre python code à nouveau pour obtenir cette entrée à afficher dans l'écran quand nous en avons besoin du fichier texte "Conserver l'entrée que nous recevons de l'utilisateur dans le fichier texte après avoir exécuté notre code python pour obtenir cette entrée à afficher à l'écran quand nous en avons besoin du fichier texte

Je suis nouveau à Python et je passe beaucoup de temps pour bien l'apprendre. Nous avons appris "File Access in Python" à l'université et j'ai quelques questions.

Nous recevons l'entrée de l'utilisateur pour écrire dans le fichier texte (que j'ai réussi à faire bien avec quelques autres fonctionnalités que j'ai écrites avec plus de méthodes dans ma classe d'accès aux fichiers, vous pouvez le voir de mon code ci-dessous) Après l'exécution de mon code python (rouvrez le fichier py pour exécuter le même code), je veux rappeler les choses que j'ai tapées et enregistrées dans le fichier texte avant. En ce moment, quand je rouvre mon fichier python et que j'exécute mon code, les choses que j'ai écrites auparavant dans le fichier texte sont toutes perdues :(Savez-vous comment le réparer? Et comment puis-je imprimer les lignes 3e-4e etc. La raison pour laquelle je pose cette question parce que je travaille sur mon gui tkinter qui est fait principalement mais je veux garder les choses que j'ai tapé sur mes étiquettes d'entrée et les enregistrer sur mon fichier texte et appelez-les à nouveau depuis le fichier texte pour les afficher sur mon interface graphique lorsque j'appuie sur un bouton avec l'aide de "File Access Python Topic" .Certaines personnes m'ont dit de le faire avec MySQL mais je veux faire et apprendre de cette façon Je serai très heureux si quelqu'un m'aiderait et m'apprendrait comment on fait ce genre de choses, merci beaucoup à partir de maintenant, voici mon code:

class fileAccess: 

#Create a short program to open two files (one for reading, one for writing) 
#then print the files three basic attributes to screen (.name .closed .mode) 
#close the file then print them again 

    def writeFile(self): 
     myfile=open("newfile.txt","w") 
     myfile.write("My computer fell out of his tree") 
     myfile.close() 
     myfile=open("newfile.txt","r") 
     fistfilecontent = myfile.read() 
     myfile.close() 
     print(fistfilecontent) 

    def readFile(self): 
     mysecondfile=open("text.txt","r") 
     secondfilecontent = mysecondfile.read() 
     mysecondfile.close() 
     print(secondfilecontent) 

#Create a short program that reads user input from the keyboard and writes it to a file called #whatyouwrote.txt 

    def userWrites(self): 
     user=str(input("Type whatever you want to write for your text file: ")) 

     mythirdfile=open("whatyouwrote.txt","w") 
     mythirdfile.write(user) 
     mythirdfile.close() 

     mythirdfile=open("whatyouwrote.txt","r") 
     thirdfilecontent = mythirdfile.read() 
     mythirdfile.close() 
     print(thirdfilecontent) 

#Modify the example from lecture so that 
#instead of going to the screen interaction with the program sends data (like writing) to a file called #logfile.txt 

    def sendData(self): 
     #Open a file 
     fo = open("foo.txt","r+") 
     value = fo.read(10) 
     print("Read the 1st String is: ", value) 
     myfifthfile = open("logfile.txt","r+") 
     myfifthfile.write(value) 
     myfifthfile.close() 

     #Close opened file 
     fo.close() 


    def sendData_2(self): 
     #Check current position 
     fo = open("foo.txt","r+") 
     #0 is the first position of your line in the text then we count 18 after that point 
     fo.seek(18,0) 
     #read the 11 chr after that 18 chr from seek 
     secondvalue = "\n"+fo.read(11) 

     print("Read the 2nd String is: ", secondvalue) 
     mysixthfile = open("logfile.txt","a+") 
     mysixthfile.write(secondvalue) 
     mysixthfile.close() 

     #Close opened file 
     fo.close() 

### MAIN 

aykut=fileAccess() 
#aykut.sendData() 
#aykut.sendData_2() 

#aykut.writeFile() 
#aykut.readFile() 
aykut.userWrites() 
+0

Votre question et surtout le code sont très longs. Pouvez-vous s'il vous plaît supprimer tout ce qui n'est pas directement lié à la question? Aussi ma première supposition: vous écraser le fichier chaque fois que vous exécutez votre script. utilisez '" a "' au lieu de '" w "' pour l'ajouter. –

Répondre

1

Lorsque vous

open("sometext.txt","w") 

vous écrasez en fait ce qu'il a été écrit avant. Vous pouvez continuer à écrire sur le même fichier si vous utilisez l'option « a »

open("sometext.txt","a")