Python:如何将所有记录写入/打印到文件中

时间:2018-03-14 07:03:14

标签: python for-loop spreadsheet

我有一段代码从Excel电子表格中读取数据,然后对数据进行一些简单的处理,并将结果保存到文本文件中。

除了一个问题外,所有工作正常 - 我只能看到最后一条记录。 似乎循环覆盖所有记录...... 我怎样才能获得所有记录?

from openpyxl import load_workbook
# The source xlsx file is named as source.xlsx
wb=load_workbook("/home/test/Downloads/test.xlsx")
ws = wb.active
first_column =ws['A']
second_column =ws['B']
# Print the contents
for x in xrange(len(first_column)):
    A = str(first_column[x].value)
    B = str(second_column[x].value)
    C = str(len(B.split()))
    PRN = A+B+C
    file = open('filename', 'w')
    file.write(PRN)
    file.close()

3 个答案:

答案 0 :(得分:1)

当您打开文件时,它会删除所有以前的数据。使用:

INSERT INTO tableName (employee_name, total) VALUES(10, 100) ON DUPLICATE KEY UPDATE total = total + 100;

这会附加到文件而不是重写它。这确实导致多次运行程序将使最终结果更长和更长。所以你也可以使用:

file = open('filename', 'a')

答案 1 :(得分:1)

# Print the contents
file = open('filename', 'w')

for x in xrange(len(first_column)):
    A = str(first_column[x].value)
    B = str(second_column[x].value)
    C = str(len(B.split()))
    PRN = A+B+C
    file.write(PRN)

file.close()

答案 2 :(得分:0)

对代码进行少量修改: -

PRN = A+B+C
    file = open('filename', 'a')
    file.write(PRN+"\n")
    file.close()