code:
date=int(raw_input("Date:"))
ammount=int(raw_input("Ammount:"))
desc=str(raw_input("Description:"))
account=str(raw_input("Account:"))
def addEntry(date, ammount, desc, account):
transact=open("transactions.txt", "w")
transact.write(date, ammount, desc, account)
transact.close()
addEntry(date, ammount, desc, account)
gives
Traceback (most recent call last):
File "C:\tbank.py", line 11, in <module>
addEntry(date, ammount, desc, account)
File "C:\tbank.py", line 8, in addEntry
transact.write(date, ammount, desc, account)
TypeError: function takes exactly 1 argument (4 given)
how can i make it work?
-
6Read the error it gives you?houbysoft– houbysoft2010年11月06日 21:37:03 +00:00Commented Nov 6, 2010 at 21:37
3 Answers 3
date=int(raw_input("Date:"))
ammount=int(raw_input("Ammount:"))
desc=str(raw_input("Description:"))
account=str(raw_input("Account:"))
def addEntry(date, ammount, desc, account):
transact=open("transactions.txt", "w")
transact.write('%s, %s, %s , %s' % (date, ammount, desc, account))
transact.close()
addEntry(date, ammount, desc, account)
Comments
You are opening a file to write to it. It takes a single string as argument.
transact.write("your string")
Since all you are doing is write to file. You can avoid conversion. And raw_input returns a string.
date=raw_input("Date:")
amount =raw_input("Ammount:")
desc=raw_input("Description:")
account=raw_input("Account:")
You can add all of them as one string, before writing it to file
3 Comments
As others have noted, you must pass write a single string argument. There is another way to write things out to an open file that should be mentioned: the special form of print
print >>transact, date, amount, desc, account
This directs print to output to the file that immediatedly follows the '>>' It behaves exactly like print normally does, so it will write out all the values separated by a space, with a newline at the end (which you can suppress by adding a trailing comma).