Also muss ich ein Programm schreiben, das eine Textdatei liest, und kopiert seinen Inhalt in eine andere Datei. Ich muss dann eine Spalte am Ende der Textdatei hinzufügen und diese Spalte mit einem int füllen, der mit der Funktion calc_bill berechnet wird. Ich kann es bekommen, um den Inhalt der ursprünglichen Datei auf den neuen zu kopieren, aber ich kann nicht scheinen, dass mein Programm in den Ints gelesen wird, die für das Ausführen von calc_bill notwendig sind. Jede Hilfe würde sehr geschätzt werden.Python-Datei lesen und schreiben
Hier sind die ersten 3 Zeilen der Textdatei aus Ich lese:
CustomerID Title FirstName MiddleName LastName Customer Type
1 Mr. Orlando N. Gee Residential 297780 302555
2 Mr. Keith NULL Harris Residential 274964 278126
Es kopiert die Datei genau so, wie es in die neue Datei soll. Was nicht funktioniert, ist das Schreiben von bill_amount (calc_bill)/billVal (main) in die neue Datei in einer neuen Spalte. Hier ist die erwartete Ausgabe in die neue Datei:
CustomerID Title FirstName MiddleName LastName Customer Type Company Name Start Reading End Reading BillVal
1 Mr. Orlando N. Gee Residential 297780 302555 some number
2 Mr. Keith NULL Harris Residential 274964 278126 some number
Und hier ist mein Code:
def main():
file_in = open("water_supplies.txt", "r")
file_in.readline()
file_out = input("Please enter a file name for the output:")
output_file = open(file_out, 'w')
lines = file_in.readlines()
for line in lines:
lines = [line.split('\t')]
#output_file.write(str(lines)+ "\n")
billVal = 0
c_type = line[5]
start = int(line[7])
end = int(line[8])
billVal = calc_bill(c_type, start, end)
output_file.write(str(lines)+ "\t" + str(billVal) + "\n")
def calc_bill(customer_type, start_reading, end_reading):
price_per_gallon = 0
if customer_type == "Residential":
price_per_gallon = .012
elif customer_type == "Commercial":
price_per_gallon = .011
elif customer_type == "Industrial":
price_per_gallon = .01
if start_reading >= end_reading:
print("Error: please try again")
else:
reading = end_reading - start_reading
bill_amount = reading * price_per_gallon
return bill_amount
main()
Was ist der Stromausgang? – Shadow
Es gibt keinen Fehler beim Kompilieren. Die aktuelle Ausgabe der neu generierten Textdatei befindet sich im zweiten Block von "code" in der ursprünglichen Frage. –
Sie haben geschrieben, dass dies die erwartete Ausgabe ist. Vielleicht möchten Sie das beheben :) – Shadow