2017-06-16 6 views
0

Mit dieser:Schreiben Strings Dateien

def Files(x,y,z): 
    newH = x[:2] 
    newH+Hero == open(x , "w") 
    newH+Hero.write('z','y') 
    newH+Hero.close() 

Ich versuche, eine neue Datei für jede der Optionen 24 insgesamt erstellen noch der Fehler: Attribute: ‚str‘ Objekt hat kein Attribut ‚write‘ mit einem Nicht-Null-Status irgendwelche Ideen verlassen?

+3

1. Sie können kein '+' in Variablennamen haben. 2. 'newH + Hero == open (x," w ")' ist ein Vergleich, keine Aufgabe. –

Antwort

1

Wie bereits erwähnt + kann nicht in Variablennamen in Python sein.

Wenn ich Sie richtig verstanden, benötigen Sie eine Funktion Files (die wiederum zu nennen Funktionen in Python keine empfohlene Weg ist, es mit Kleinbuchstaben beginnen sollte), die drei Parameter akzeptiert: x - Dateinamen zu schreiben, y und z sind die Zeichenfolgen, die in die Datei x geschrieben werden sollen.

Wieder ist es besser, sinnvollere Namen für Ihre Variablen und Parameter wie filename, name0, name1 zu verwenden (wenn Ihre anderen Parameter einige String-Namen sind).

kann Ihre Funktion so etwas wie dieses:

def files(x, y, z): 
    with open(x, 'w') as f: 
     f.write(y) 
     f.write(z) 

Diese Funktion eine Datei mit dem Namen öffnet x und schreiben y und z (Ich vermute, dass sie Strings in Ihrem Fall sind) in die Datei x.

+1

Ich habe den Verdacht, dass 'Hero' eine globale (oder Mitglieds-) Variable ist, die auf eine der 24 genannten Optionen gesetzt ist, also 'mit open (x + Hero,' w ') als f:' könnte möglicherweise näher dran sein was das OP will. Wir brauchen jedoch noch mehr Aufklärung. –