当我终止程序并意识到它从未正确关闭时,一个数据文件被破坏。你知道吗
它不被破坏是非常关键的。所以我添加了一个语句来关闭文件。你知道吗
现在,文件似乎打开了两次,然后又关闭了。一次手术太多了。当然,中间有许多读写操作,但它应该只打开和关闭文件一次。你知道吗
下面是我对standarizeweb.py模板所做的操作:
import web
import pandas as pd
store = pd.HDFStore('data_file.h5')
urls = (
'/', 'index'
)
class index:
def __init__(self):
self.__df = store['df']
def GET(self):
# several read-write, and modify operations on self.__df
return "Hello, world!"
if __name__ == "__main__":
try:
app = web.application(urls, globals())
app.run()
finally:
store.close()
现在,如果我将打开存储的行移到底部的try
语句中,它会抱怨,因为它编译了类,但找不到变量store
。你知道吗
我试着用顶部的None
初始化store
,但也没用。然后我试着把这个行放在函数的顶部,然后从底部调用它,但是,这并没有把它纳入范围。你知道吗
我在考虑把它变成一个global
变量,这可能会起作用,这是正确的方法吗?你知道吗
见web.py running twice。如前所述,避免使用globals,因为它们不会做你认为它们会做的事情。。。应用程序类型运行两次,一次在启动时运行,另一次在
web.appplication(urls, globals())
内运行。如果将autoreload=False
设置为web应用程序()调用,它不会加载文件两次。你知道吗另一种解决方案是将
store
连接到web.config
,这是全局可用的。你知道吗…并在
__init__
中引用该全局相关问题 更多 >
编程相关推荐