如何将输出文本导出到文件

时间:2018-05-31 16:54:11

标签: python

更新了问题&代码:

我有一个PDF - Excel比较程序,它读取大约4个表,然后读取excel页面并比较其中的元素。

我希望这个输出(在Ipython控制台中使用spyder)保存到文件中。 我很高兴打印到.txt文件

该文件包含比较消息但是“现在比较页面...”现在正在比较部分..'消息未被打印。 (昨天所有'现在比较'的消息都是在数据匹配消息之前打印出来的,但由于某种原因,这种消息不再发生......)

我希望它的格式为:

现在比较页面..

现在比较部分..

所有数据都匹配......

所有数据都匹配......

现在比较部分..等等。

这是一个函数的一部分,它在我在程序中调用的不同文件中

def compare_pdf_with_excel(pdf_data, excel_data):
...
...
...    
f = open('testoutput.txt','a')
for n, col in enumerate(comparison.columns):
    if all(comparison[col]):
        f = open('testoutput.txt','a')
        s = 'Data matches for CDID {}!'.format(col)
        f.write(str(s))
        for row in comparison.index:
            if not comparison.loc[row][col]:
                f = open('testoutput.txt','a')
                s = 'Error - there is a mismatch for CDID "{}" in period "{}"!'\
                .format(col,row)
                f.write(str(s))

这是我的程序代码的一部分

f = open('testoutput.txt','a')
s = 'Now comparing PAGE ' + str(page_code) + ' page number ' + str(page_to_read)
f.write(str(s))
part_count = 0
for pdf, exc in zip([part_a1_1,part_a1_2,part_a1_3,part_a1_4], excel_chunks_a1_dropped):
    part_count += 1
    s = 'Now comparing part {}'.format(part_count)
    f.write(str(s))
    compare_pdf_with_excel(pdf, exc)   

1 个答案:

答案 0 :(得分:0)

累积列表中的所有比较结果字符串,然后在函数结束时返回列表,并将结果一次性写入文件。

totals = np.nansum(_4D_mat, axis=0, keepdims=True)
totals = np.nansum(totals, axis=3, keepdims=True)
_4D_mat /= totals

def compare_pdf_with_excel(pdf_data, excel_data): .... comparison.columns = columns results = [] for n, col in enumerate(comparison.columns): if all(comparison[col]): s = 'Data matches for CDID {}!'.format(col) #print(s) results.append(s) for row in comparison.index: if not comparison.loc[row][col]: s = 'Error - there is a mismatch for CDID "{}" in period "{}"!'.format(col,row) #print(s) results.append(s) return results for pdf, exc in zip([part_a1_1,part_a1_2,part_a1_3,part_a1_4],excel_chunks_a1_dropped): part_count += 1 comparison_msg = 'Now comparing part {}'.format(part_count) print(comparison_msg) results = compare_pdf_with_excel(pdf, exc) results = ('\n'.join(results)) print(results) with open(filepath, 'a') as f: f.write(comparison_msg = '\n') f.write(results) open the file for appending表示每次调用该函数时,如果该文件已存在,它将附加到文件中。在函数中添加filepath参数可以让您获得更多控制权。