def filewrite():
filew = open('company.dat', 'a')
custid = str(input('Enter Customer ID:'))
Widg = abs(float(input('Quantity of Widgets Ordered:')))
Gidg = abs(float(input('Quantity of Gidgets Ordered:')))
Dood = abs(float(input('Quantity of Doodads Ordered:')))
filew.write('\n')
filew.write(custid)
filew.write(Widg)
filew.write(Gidg)
filew.write(Dood)
filew.close()
def fileread():
filer = open('company.dat', 'r')
read = filer.read()
file.close()
print(read, end='')
again = True
while again == True:
print('1 - Add a new Invoice Order')
print('2 - Display all Invoice Orders')
print('3 - Quit')
choice = abs(int(input('Enter 1, 2, or 3:')))
if choice > 3:
print('Error, no choice of such available.')
choice = abs(int(input('Enter 1, 2, or 3:')))
if choice == 1:
filewrite()
print('\n')
我想将浮点数写入数据文件,但不会让我(write()参数必须为str,而不是浮点数)。有什么办法可以将浮点数写入数据文件,还是必须先将其写为str然后将其转换为浮点数
?答案 0 :(得分:1)
您可以在写入文件时将其转换为字符串。为了提高可读性,您应该在其后附加一个\n
filew.write(str(Widg) + '\n')
filew.write(str(Gidg) + '\n')
filew.write(str(Dood) + '\n')
此外,当有人输入Quit
时,您也没有为3
编写的代码。这样的事情应该起作用:
if choice == 3:
break
我使用上述更改运行了您的代码,效果很好。这是它产生的文件:
mayankp@mayank:~/$ cat company.dat
123445
12134
12310.0
1210.010.010.0
999910.0
10.0
10.0
答案 1 :(得分:0)
好吧,您这里没有其他选择。 write()函数仅接受字符串值,因此您必须在写入之前和检索数据值之后进行必要的转换。您可以使用格式功能来更好地控制要存储值的格式。例如:
number = 1
filew.write('{:04d}\n'.format(number)) # 0001 output \n if you want to store on new line