2017-07-12 5 views
-3

Wenn ich Folgendes ausführen, bekomme ich die Ausgabe, die ich von Druck benötigen. Dann versuche ich, die Ergebnisse in meine Erstellungsdatei einzufügen. Ich kann dort einen property.text-Wert eingeben und es funktioniert gut oder einfach "string", aber wenn ich versuche, die Ergebnisse dort einzutragen, tut es einfach nichts.Python-Variable als Zeichenfolge

alarms = system.alarm.queryStatus(state=["ActiveUnacked", "ClearAcked"]) 

for alarm in alarms: 
print alarm.getName(), alarm.getState() 

Ergebnis

Dryer 7 Temp low Cleared, Acknowledged 
Dryer 10 Temp High Cleared, Acknowledged 
Dryer 5 Burner Fault Cleared, Acknowledged 

, wenn ich diese

laufen
alarms = system.alarm.queryStatus(state=["ActiveUnacked", "ClearAcked"]) 
for alarm in alarms: 
alarm1 = alarm.getName(), alarm.getState() 

my_file = open('D:\send_file3.txt','w') 
my_file.write('from call import Client\n') 
my_file.write('account_sid = "test"\n') 
my_file.write('auth_token = "test"\n') 
my_file.write('client = Client(account_sid, auth_token)\n') 
my_file.write('message =client.api.account.messages.create(to="+6140000000", 
from_="+614000000000", body=" ') 
my_file.write(alarm1) 
my_file.write(' ")') 
my_file.close() 

Textdatei Ausgabe

es alle Zeilen

schreibt
body=" 

dann leer. Wenn ich alarm1 zu 'hallo' ändere

bekomme ich body="hello ").

, was ich erreichen will, ist

body="Dryer 7 Temp low Cleared, Acknowledged Dryer 10 Temp High Cleared, Acknowledged Dryer 5 Burner Fault Cleared, Acknowledged" 

Jede Hilfe

Antwort

0

Verwenden String Formatierung für diese Aufgabe würde geschätzt. More info

alarms = system.alarm.queryStatus(state=["ActiveUnacked", "ClearAcked"]) 
    for alarm in alarms: 
     alarm1 = alarm.getName(), alarm.getState() 
     my_file = open('D:\send_file3.txt','w') 
     my_file.write('from call import Client\n') 
     my_file.write('account_sid = "test"\n') 
     my_file.write('auth_token = "test"\n') 
     my_file.write('client = Client(account_sid, auth_token)\n') 
     my_file.write('message=client.api.account.messages.create(to="+6140000000", from_="+614000000000", body=\"{}\"').format(alarm1) 
     my_file.close() 
+0

Sie könnten Ihre Antwort verbessern, indem Sie eine kurze Erklärung geben. – eyllanesc

+0

Eine gute Antwort kann nicht nur Code sein, Sie müssen eine Erklärung haben, was vorgeschlagen wird. – eyllanesc

0

Da alarm ist kein String/Text, können Sie es direkt in die Datei nicht schreiben kann. Sie können dies erreichen, indem Sie alarm.getName() und alarm.getState() in eine Liste einfügen und sie als Zeichenfolge mit einem Trennzeichen verbinden ",". Dann können Sie es in eine Datei schreiben

my_file = open('D:\send_file3.txt','w') 
my_file.write('from call import Client\n') 
my_file.write('account_sid = "test"\n') 
my_file.write('auth_token = "test"\n') 
my_file.write('client = Client(account_sid, auth_token)\n') 
my_file.write('message =client.api.account.messages.create(to="+6140000000", 
from_="+614000000000", body=" ') 
for alarm in alarms: 
    myfile.write(",".join([alarm.getName(), alarm.getState()])) 
+0

Sie könnten Ihre Antwort verbessern, indem Sie eine kurze Erklärung geben. – eyllanesc

+0

Ich habe das Update gemacht – Sriram