我想在python中运行以下q代码:
table: ("ISI"; enlist ",") 0:`data.csv
我现在开始探索qpython,因为它目前在Windows中较易使用(与pyq相比),并希望执行以下操作:
q = qconnection.QConnection(host = 'localhost', port = 5000)
q.sync('table: ("ISI"; enlist ",") 0:`data.csv')
是否可能发生这种情况,或者将来在Windows稳定时需要使用pyq吗?我在q.sync中看到的示例是查询和函数,这些查询和函数采用参数列表,而不是直接在q环境中运行代码。我想确保我不会丢失其他一些可用于当前任务的功能。
答案 0 :(得分:1)
在尝试访问文件时,必须使用格式为`:data.csv
的文件句柄(请注意开头是冒号),而不要使用符号。您可以使用hsym
将符号转换为文件句柄。
您还应该在Windows的q进程中使用\dir
,检查文件是否与q进程位于相同的工作目录中,否则您将需要调整文件句柄以指向正确的位置< / p>
q)hsym `data.csv
`:data.csv
具有内容的文件data.csv:
id,sym,val
1,APPL,50
2,GOOG,100
运行与您使用的文件句柄相同的命令:
In: q.sync('table: ("ISI"; enlist ",") 0: `:data.csv')
或
In: q.sync('table: ("ISI"; enlist ",") 0:hsym `qpython.csv')
使用qpython检查结果变量:
In: q.sync('table')
Out: rec.array([(1, b'APPL', 50), (2, b'GOOG', 100)],
dtype=[('id', '<i4'), ('sym', 'S4'), ('val', '<i4')])
检查q过程
q)table
id sym val
-----------
1 APPL 50
2 GOOG 100