如何在整个会话期间保持字典的生命力

时间:2019-01-25 12:00:29

标签: python

我有一个python类文件,该文件正在读取特定文件夹中的所有Excel文件。

class ReadExcel:

    def readexcel(self, filename):

        # Read excel file
        print("reading excel files ... :", filename)

我的主要切入点来自一个单独的python文件(Main_entry.py),在该文件中我称为读取类。 我需要在执行结束时发送邮件(即,当所有文件都已被读取和处理时)。我的邮件正文应包含以下信息:

  File name : File1.xlsx
    Total number of rows= 1
    Number of rows Skipped : 0
    Number of rows inserted  : 0
    Number of rows updated : 1

    File name : File2.xlsx
    Total number of rows= 1
    Number of rows Skipped: 0
    Number of rows inserted  : 0
    Number of rows updated : 1

    File name : File3.xlsx
    Total number of rows= 1
    Number of rows Skipped : 0
    Number of rows inserted : 0
    Number of rows updated : 1

如何在字典中存储此类信息?另外,如何声明dict,以使数据在每次方法调用时都保持追加。

1 个答案:

答案 0 :(得分:1)

您只能创建类ReadExcel的一个实例,并在每次readexcel调用的末尾附加适当的数据。例如:

class ReadExcel:
    def __init__(self):
        self.stats = {}

    def readexcel(self, filename):
        ...
        self.stats[filename] = {"rows": 0, "skipped": 0, ...}

Main_entry.py

...
excel_reader = ReadExcel()
for filename in filenames:
    excel_reader.readexcel(filename)
send_mail(excel_reader.stats)
...

如果您想提供更多信息,如何将文件名传递到脚本中,可能会更容易获得帮助。