只计算一次python变量

时间:2015-02-08 15:45:10

标签: python variables memory import

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

这是我的代码:

in 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  

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

2 个答案:

答案 0 :(得分:1)

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

in 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 

答案 1 :(得分:0)

如果您的数据集非常大,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中编写该方法,并从其他地方调用它。

BTW:from module import *位于你不应该 -list上。 Further reading.:)