【发布时间】:2018-02-10 00:12:09
【问题描述】:
所以我有一个连续运行的预定脚本。这是调度程序脚本:
import os
import schedule
import time
os.chdir("B:\Scheduled_Scripts")
def DSE():
print("")
print(colors.OK + '***DSE***')
try:
start = time.time()
exec(open('B:/Scheduled_Scripts/DSE.py').read())
print("")
print(colors.OK + "DSE completed successfully in", round(time.time() - start, 2), 'seconds!')
except Exception as e:
logger.error(e)
print(colors.WARNING + 'An error has occurred in DSE.py. It was a ' + type(e).__name__ + '-' + format(e))
print('')
pass
现在它将运行我的 DSE.py 脚本,我最终会使用 pandas sql 查询。然后我创建一个函数来开始映射一些值。
query = '''(my query)'''
price_levels = pd.read_sql_query(query, KORE, params={my_params})
def get_price_level(seat):
pl = price_levels[price_levels['seatsid'] == seat]['priceleveldesc'].values()
return str(pl)
DSE_avs['priceleveldesc'] = DSE_avs['seatsid'].map(get_price_level)
问题是现在它无法识别函数中定义了“price_levels”。如果我只是将 price_levels 设置为全局变量,那会是多么令人不悦?
【问题讨论】:
-
exec(open('B:/Scheduled_Scripts/DSE.py').read())真的吗?为什么不import DSE? -
关于风格/最佳实践的问题并不适合 StackOverflow ——我们更喜欢具有具体、规范答案的问题(并且,作为一般准则,围绕问题或错误的问题;如果没有任何问题,那是一种气味,您所拥有的可能不是一个问题)。请参阅A Guide to Code Review for Stack Overflow Users 以讨论一种可能的替代方案,以及哪些问题适合或不适合这两个网站。
标签: python