更新了问题&代码:
我有一个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)
答案 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参数可以让您获得更多控制权。