调试程序
如果想要调试一个已经发布的python项目源码,修改了部分源码,想要看看效果,有以下两种方法可以简单查看。
异常处理或tabulate
- 使用 raise 主动抛出异常,并设置异常信息或获取变量值。
- tabulate会打出变量中所有输出,如果一个变量中存储的数据过大,那么使用tabulate调试数据可能会占用大量计算资源,使程序运行效率降低。我们可以使用head(int)方法只打印前n行数据。
1. 使用raise Exception()
找到需要调试的代码,修改源码完成后,在其下方加入
raise Exception(变量名)
例子:
修改了关于变量A值的源码,想看一下变量A目前的值是什么,如下操作
A = xxxxx
raise Exception(A)
再次运行项目时,项目会停滞在raise Exception(A),并给出A的值。
2. 使用tabulate模块
需要先在python环境中安装tabulate模块,然后在源码中导入它
找到需要调试的代码,修改源码完成后,在其下方加入
import tabulate
print(tabulate.tabulate(A, tablefmt='psql', headers='keys'))
例子:
修改了关于变量A值的源码,想看一下变量A目前的值是什么,如下操作
A = xxxxx
import tabulate
print(tabulate.tabulate(A, tablefmt='psql', headers='keys'))
再次运行项目时,项目会正常运行完成,并在结尾给出A的值。
3. 示例
3.1 raise Exception()
调试的代码
def xxxxxxx():
event_df['Date Time'] = pd.to_datetime(self.event_df['Date Time'])
event_df = event_df.sort_values(['Date Time'])
raise Exception(self.event_df)
运行项目
3.2 使用tabulate模块
调试的代码
def xxxxxxx():
event_df['Date Time'] = pd.to_datetime(self.event_df['Date Time'])
event_df = event_df.sort_values(['Date Time'])
import tabulate
print(tabulate.tabulate(event_df[['Description"','Date Time']].head(10), tablefmt='psql', headers='keys'))
运行项目