仅计算 python 变量一次

Calculating python variable only once

我想在我的脚本 extractor.py 中提取一个 excel 文件并将其导入我的脚本 calculation.py 但不重新计算它!

这是我的代码:

在 extractor.py

current_directory=os.getcwd()
workbook_clients=pandas.ExcelFile(current_directory+"/Documents/clients.xlsx")      
clients=pandas.io.excel.ExcelFile.parse(workbook_clients)

在calculation.py

from extractor import * 
print clients  

现在当我 运行 calculation.py 需要 30 秒才能 运行 我不明白为什么,我只是想调用内存中的一个变量...

如果您的数据集非常大,read_csv 应该比 read_excel 快很多。 (Source)

根据您的意见进行编辑:如果您想确保在例程中仅使用提取器获取一次值,请编写一个方法

import os
import pandas as pd

def get_data():
    current_directory=os.getcwd()
    workbook_clients=pd.ExcelFile(current_directory+"/Documents/clients.xlsx")      
    data=pd.io.excel.ExcelFile.parse(workbook_clients)
    return data

clients = get_data()
print(clients)

现在你可以用 clients 做任何你想做的事,它是从内存中调用的。如果您想重新读取数据,只需再次调用该方法即可。

显然,您也可以在 extractor.py 中编写方法,然后从其他地方调用它。

顺便说一句:from module import * 你不应该做的 列表中。 Further reading.:)

好的,我终于找到了另一种方法来做我想做的事:

在extractor.py

current_directory=os.getcwd()
workbook_clients=pandas.ExcelFile(current_directory+"/Documents/clients.xlsx")
global clients 
clients=pandas.io.excel.ExcelFile.parse(workbook_clients)

在calculation.py

print clients