我得到的错误是write()恰好接受一个参数(给定5)。我能够通过在每一行上写一个write语句来使写入工作,但是这导致每个输入都写在新的一行上。我想要做的是使写入以类似于为临时文件创建的表的格式进行。我不确定如何实现这一目标的逻辑。
import os
def main ():
temp_file = open('temp.txt', 'a')
temp_file.write('Product Code | Description | Price' + '\n'
'TBL100 | Oak Table | 799.99' + '\n'
'CH23| Cherry Captains Chair | 199.99' + '\n'
'TBL103| WalnutTable |1999.00' + '\n'
'CA5| Chest Five Drawer| 639' + '\n')
another = 'y'
# Add records to the file.
while another == 'y' or another == 'Y':
# Get the coffee record data.
print('Enter the following furniture data:')
code = input('Product code: ')
descr = input('Description: ')
price = float(input('Price: '))
# Append the data to the file.
temp_file.write(code, print('|'), descr, print('|'), str(price) + '\n')
# Determine whether the user wants to add
# another record to the file.
print('Do you want to add another record?')
another = input('Y = yes, anything else = no: ')
# Close the file.
temp_file.close()
print('Data appended to temp_file.')
在您的代码中,只需替换此行
temp_file.write(code, print('|'), descr, print('|'), str(price) + '\n')
此行
temp_file.write(code + '|' + descr + '|' + str(price) + '\n')
说明:方法
write
带有一个参数,但是您在代码中提供了五个。这就是您得到错误的原因。您只需要串联变量就可以将一个字符串传递给该方法。
您只应通过一个参数写一行
temp_file.write(f'{code} | {descr} | {price}\n')