Ich habe das zu lange beobachtet und ich glaube, ich habe etwas Dummes verpasst. Schreiben eines Skripts, um Informationen in eine Datei zu schreiben. Alle Variablen sind Zeichenfolgen, die von einer anderen Funktion zum Schreiben einer Datei übergeben werden.Python-Fehler TypeError: nicht alle Argumente während der Formatierung von Strings konvertiert
Hier ist mein Code:
53 def makeMainTF():
54 NameTag,mcGroupTag,mcIPTag = makeNameMCTag()
55 yourName = getAccessSecretName()
56 instanceType ="t2.micro"
57 with open ("vlslabMain.tf","w") as text_file:
58 text_file.writelines(['provider \"aws\" {\n',
59 ' ',
60 'access_key = \"${var.access_key}\"\n',
61 ' ',
62 'secret_key = \"${var.secret_key}\"\n',
63 ' ',
64 'region = \"${var.access_key}\"\n',
65 '}\n\n\n',
66 'resource \"aws_instance\" \"example\" {\n',
67 ' ',
68 'ami = \"${lookup(var.amis, var.region)}\"\n',
69 ' ',
70 'instance_type = \"%s\" \n}' % instanceType,
71 '\n\n\n\n',
72 'tags {\n',
73 ' ',
74 'Name = \"%s\"\n' % NameTag,
75 ' ',
76 'Multicast = \"%s,%s\"' % (mcGroupTag,mcIPTag),
77 ' ',
78 'Owner = \"%s\"' % yourName,
79 '\n}'])
nicht sicher, warum ich diesen Fehler bin immer:
Enter Access Key: asd
Enter Secret Key: asd
Enter your name: asd
Access Key: asd
Secret Key: asd
Your full name is: asd
Traceback (most recent call last):
File "terraTFgen.py", line 86, in <module>
makeMainTF()
File "terraTFgen.py", line 78, in makeMainTF
'Owner = \"%s\"' % yourName,
TypeError: not all arguments converted during string formatting
Vielleicht zu lang Ich habe es mit, aber ich nicht die Syntax Fehler sehen.
Er schrieb tatsächlich aus
Enter Access Key: asd
Enter Secret Key: asd
Enter your name: asd
Access Key: asd
Secret Key: asd
Your full name is: asd
Aber der Fehler verursacht das Skript nicht auf die tatsächliche Datei zu schreiben.
Danke für die Hilfe! **** bearbeiten ***
Dies ist die Funktion, die ich die Variable yourname
zu erhalten verwendet, um3 def getAccessSecretName():
4 access_key = raw_input("Enter Access Key: ")
5 secret_key = raw_input("Enter Secret Key: ")
6 yourName = raw_input("Enter your name: ")
7 print "Access Key: %s" % access_key
8 print "Secret Key: %s" % secret_key
9 print "Your full name is: %s" % yourName
10 return access_key, secret_key, yourName
Was ist in 'yourName', scheint wie ein Tupel. – sisanared
Ich aktualisierte die Bearbeitung mit der Funktion, die den yourName aufruft. obwohl ich gerade in was ich dachte, war eine Zeichenfolge "ralph test", aber seltsam genug, was schreibt in die Datei ist: "... Owner =" 1234 4321 ralph test "', die meine Saite, in ein Tupel verwandelt. Habe ich in meinem getAccessSecretName() etwas falsch gemacht? – chowpay