问题描述
我正在尝试将majic(%timeit)命令结果捕获到文本文件,同样在ipython中单独执行,但在.py文件中调用,这会引发语法错误。请帮助我,我脚本中到底缺少什么。
from scripts.download_sftp_extract_fun import sftp_extract
import sys
import timeit
times = %timeit -o sftp_extract.download_sftp_extract(extract_name="RE_AMS_SUBD_SLS_WKLY_")
print(times,file=open("logs/log_re_ams_subd_sls_wkly.txt",'w'))
错误消息:-
In [26]: exec(open('scripts/extract_download_re_ams_subd_sls_wkly_.py').read())
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/IPython/core/interactiveshell.py",line 3417,in run_code
exec(code_obj,self.user_global_ns,self.user_ns)
File "<ipython-input-26-21b570da7ee2>",line 1,in <module>
exec(open('scripts/extract_download_re_ams_subd_sls_wkly_.py').read())
File "<string>",line 4
times=%timeit -o sftp_extract.download_sftp_extract(extract_name="RE_AMS_SUBD_SLS_WKLY_")
^
SyntaxError: invalid Syntax
解决方法
timeit
的正确用法如下:
import timeit
timeit.timeit("sftp_extract.download_sftp_extract(extract_name=\"RE_AMS_SUBD_SLS_WKLY_\")")
查看它的documentation以获得更多详细信息