将数据附加到Python中的文件中

问题描述 投票:-2回答:2

我得到的错误是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.')
python python-3.7
2个回答
0
投票

在您的代码中,只需替换此行

temp_file.write(code, print('|'), descr, print('|'), str(price) + '\n') 

此行

temp_file.write(code + '|' + descr + '|' + str(price) + '\n')

说明:方法write带有一个参数,但是您在代码中提供了五个。这就是您得到错误的原因。您只需要串联变量就可以将一个字符串传递给该方法。


0
投票

您只应通过一个参数写一行

temp_file.write(f'{code} | {descr} | {price}\n') 
© www.soinside.com 2019 - 2024. All rights reserved.