【问题标题】:How to write data to a file after the last line?如何在最后一行之后将数据写入文件?
【发布时间】:2021-11-22 08:15:32
【问题描述】:

下面我有一个 sn-p,它正在将一些数据写入文件。请注意,xml_filestxt_files 列表的输入可能会不时变化,这只是一些可重现的测试数据

xml_files = ['text0.xml', 'text1.xml', 'text2.xml', 'text3.xml']
txt_files = ['text0.txt', 'text1.txt']

    today  = datetime.date.today().strftime('%Y-%m-%d')
    with open(log_location + '/' + today + '-logT2M_II.txt', 'a') as output:
        if output.tell() == 0: 
            output.write('Processed XML files: ')
        output.write('\t' + xml_files + '\n')
        if output.tell():
            output.write('Processed TXT files: ')
        output.write('\t' + xml_files + '\n')

我希望我的文件如下所示,所以我实际上希望在最后一个 xml file 之后写入 Processed TXT files。现在我有 4 个 XML 文件,但它不断变化,可能是 3 可能是 7 可能是 12。同样适用于 TXT 文件,TXT 文件的数量也可能发生变化。

Processed XML files:
      text0.xml
      text1.xml
      text2.xml
      text3.xml
Processed TXT files:
      text0.txt
      text1.txt

我目前的输出:

TypeError: can only concatenate list (not "str") to list
    

【问题讨论】:

    标签: python list file write


    【解决方案1】:

    问题是当你这样做时

    '/t' + xml_files # str() + list()
    

    这没有意义。您需要遍历列表中的元素,并逐个添加它们。

    试试这个:

    output.write('Processed XML files: \n')
    for xml_file in  xml_files:
        output.write('\t' + xml_file + '\n')
    
    output.write('Processed TXT files: \n')
    for txt_file in  txt_files:
        output.write('\t' + txt_file + '\n')
    
    

    【讨论】:

    • 好的,我该如何解决我希望在最后一个 `xml 文件`之后写入 Processed TXT 文件的事实。
    • 我编辑了问题,这两个都写了,先写xml文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2013-10-19
    • 2015-03-25
    • 1970-01-01
    相关资源
    最近更新 更多