2017-03-17 1 views
0

So habe ich an einem Projekt mit Python 3 gearbeitet, und ich muss einige Daten in einer TXT-Datei speichern. Wenn ich den Code ausführe, gibt es keine Fehlermeldung, es erstellt nicht einmal die Datei. Bitte helfen Sie.In Python, Schreiben in eine Textdatei funktioniert nicht

Hier ist der Code:

text = 'Sample text.' 
saveFile = open('file.txt','w') 
saveFile.write(text) 
saveFile.close() 
+1

'saveFile.close()'. oder noch besser, benutze einen 'mit' Block –

+0

Danke, ich habe das versucht, aber es hat immer noch nicht funktioniert. –

+0

Den Code in 'saveFile.close()' zu ändern, funktionierte für mich. Können Sie das überprüfen, was Sie tun, weil es funktionieren sollte? Sie könnten auch eine letzte Zeile hinzufügen, um die Datei zum Debuggen zu lesen und zu drucken: 'print (open ('file.txt'). Read())' – tdelaney

Antwort

0

Sie schreiben die Datei in das aktuelle Arbeitsverzeichnis, aber dieses Verzeichnis ist nicht das, das Sie möchten. Sie können Dateien relativ zu Ihrem Heim- oder Desktopverzeichnis schreiben, indem Sie absolute Pfade zu diesen Verzeichnissen erzeugen.

import os 
home_dir = os.path.expanduser('~') 
desktop_dir = os.path.join(home_dir, 'Desktop') 

Jetzt können Sie es für Ihre Dateien verwenden. Hinweis: Ich verwende einen Kontextmanager, sodass ich die Datei nicht explizit schließen muss:

+0

Das hat funktioniert! Vielen Dank! –

0

Vergewissern Sie sich lieber die .close() Funktion aufzurufen, als einfach die Methode auf die letzte Zeile verweist. Beachten Sie, dass die Datei in demselben Verzeichnis erstellt wird wie Ihr .py-Modul. Achten Sie also darauf, dass Sie an der richtigen Stelle für Ihre Ausgabe suchen.

+0

Okay, ich habe die Datei gefunden, die erstellt wurde, aber wenn ich sie irgendwo hinbewege, wie auf dem Desktop, und versuche, sie erneut zu schreiben, passiert nichts. –

+0

Sie müssen auf den spezifischen Dateipfad zu Ihrer TXT-Datei verweisen, wenn sie sich nicht mehr im selben Verzeichnis wie das Python-Modul befindet. 'C: \ Users \ User \ Desktop \ sample.txt' oder so ähnlich. –

+0

Okay. Ich habe das versucht, und ich erhielt eine Fehlermeldung, "sample.txt nicht im Verzeichnis gefunden" ... –

0

sind Sie sicher besser wie Datei

Code Autorität zu schreiben unter

#!/usr/bin/env python 
# coding:utf-8 
'''黄哥Python''' 

text = 'Sample text.' 

with open('sample.txt', 'w') as f: 
    f.write(text) 
+0

Das hilft in diesem Fall nicht. Die Datei wird geschrieben, nur nicht dort, wo das OP es erwartet. – tdelaney

+0

Bitte fügen Sie alle Fehlerinformationen hinzu –

0

Ist die Datei vorhanden ist? Verwenden Sie diesen Code, um es zu erstellen.

open('sample.txt', 'a').close() 

diese Linie auf dem Code haben, wird nicht schaden, wenn die Datei bereits erstellt wird, weil es die Datei und schließt alles ohne Zugabe öffnet. Wenn es jedoch nicht existiert, erstellt es es mit der spezifischen Codierung, die Python verwendet (denke ich), so dass Sie sich darüber keine Sorgen machen müssen. Danach sollte Ihr Code funktionieren:

+0

Das wird nicht helfen. "w" erstellt die Datei, wenn sie nicht bereits existiert. – tdelaney

+0

Es bringt nichts ... Dateien werden nicht mit einer dauerhaften Kodierung erstellt. Jeder Code, der liest oder schreibt, muss wissen, was die Codierung ist. – tdelaney

+0

"w" sollte es zwar schaffen, tut es aber nicht immer. Ich habe vor einigen Monaten festgestellt, dass das Erstellen von Dateien mit "a" einige der Fehler beseitigt, die ich in meinem Code hatte, und ich benutze ihn seither. – Saelyth

Verwandte Themen