获取当前文件在 q (kdb) 中的位置
Getting the location of the current file in q (kdb)
有没有办法以类似于 Python 的 __file__
的方式获取当前 运行 文件在 q 中的位置。
http://code.kx.com/q/ref/dotz/#zf-file
您可以为此使用 .z.f
,它包含在命令行上加载的文件的名称。不适用于加载了 \l
但
的文件
jonny@grizzly ~ $ echo 'show .z.f' > a.q
jonny@grizzly ~ $ q a.q
KDB+ 3.5 2017.10.11 Copyright (C) 1993-2017 Kx Systems
l32/ 2()core 1945MB jonny grizzly 127.0.1.1 NONEXPIRE
`a.q
q)\
jonny@grizzly ~ $ q
KDB+ 3.5 2017.10.11 Copyright (C) 1993-2017 Kx Systems
l32/ 2()core 1945MB jonny grizzly 127.0.1.1 NONEXPIRE
q)\l a.q
`
q)\
如果您需要找到使用 \l
加载到脚本中的函数的位置,您可以从最近版本的 kdb:value .z.s
中获取此信息:
jonny@grizzly ~ $ echo 'b:{show value[.z.s]8}' > b.q
jonny@grizzly ~ $ echo 'c:{show value[.z.s]8}' > c.q
jonny@grizzly ~ $ q
KDB+ 3.5 2017.10.11 Copyright (C) 1993-2017 Kx Systems
l32/ 2()core 1945MB jonny grizzly 127.0.1.1 NONEXPIRE
q)\l b.q
q)\l c.q
q)b[]
"/home/jonny/b.q"
q)c[]
"/home/jonny/c.q"
请注意,此行为在旧版本的 kdb 中有所不同。作为参考,value .z.s
:
提供了更多信息
jonny@grizzly ~ $ echo 'd:{show value[.z.s]}' > d.q
jonny@grizzly ~ $ q
KDB+ 3.5 2017.10.11 Copyright (C) 1993-2017 Kx Systems
l32/ 2()core 1945MB jonny grizzly 127.0.1.1 NONEXPIRE
q)\l d.q
q)d[]
0x7733a0520002
,`x
`symbol$()
,`
k){1 .Q.s x;}
12 6 1 1
"..d"
"/home/jonny/d.q"
1
"{show value[.z.s]}"
有关详细信息,请参阅 http://code.kx.com/q/ref/metadata/#value
有没有办法以类似于 Python 的 __file__
的方式获取当前 运行 文件在 q 中的位置。
http://code.kx.com/q/ref/dotz/#zf-file
您可以为此使用 .z.f
,它包含在命令行上加载的文件的名称。不适用于加载了 \l
但
jonny@grizzly ~ $ echo 'show .z.f' > a.q
jonny@grizzly ~ $ q a.q
KDB+ 3.5 2017.10.11 Copyright (C) 1993-2017 Kx Systems
l32/ 2()core 1945MB jonny grizzly 127.0.1.1 NONEXPIRE
`a.q
q)\
jonny@grizzly ~ $ q
KDB+ 3.5 2017.10.11 Copyright (C) 1993-2017 Kx Systems
l32/ 2()core 1945MB jonny grizzly 127.0.1.1 NONEXPIRE
q)\l a.q
`
q)\
如果您需要找到使用 \l
加载到脚本中的函数的位置,您可以从最近版本的 kdb:value .z.s
中获取此信息:
jonny@grizzly ~ $ echo 'b:{show value[.z.s]8}' > b.q
jonny@grizzly ~ $ echo 'c:{show value[.z.s]8}' > c.q
jonny@grizzly ~ $ q
KDB+ 3.5 2017.10.11 Copyright (C) 1993-2017 Kx Systems
l32/ 2()core 1945MB jonny grizzly 127.0.1.1 NONEXPIRE
q)\l b.q
q)\l c.q
q)b[]
"/home/jonny/b.q"
q)c[]
"/home/jonny/c.q"
请注意,此行为在旧版本的 kdb 中有所不同。作为参考,value .z.s
:
jonny@grizzly ~ $ echo 'd:{show value[.z.s]}' > d.q
jonny@grizzly ~ $ q
KDB+ 3.5 2017.10.11 Copyright (C) 1993-2017 Kx Systems
l32/ 2()core 1945MB jonny grizzly 127.0.1.1 NONEXPIRE
q)\l d.q
q)d[]
0x7733a0520002
,`x
`symbol$()
,`
k){1 .Q.s x;}
12 6 1 1
"..d"
"/home/jonny/d.q"
1
"{show value[.z.s]}"
有关详细信息,请参阅 http://code.kx.com/q/ref/metadata/#value