Python数据库查询的实时输出

1 投票
1 回答
1083 浏览
提问于 2025-04-17 19:37

我有一段代码,长得像这样:

 conn=sybpydb.connect(user=args.u, password=args.p,servername=args.s)
 cur = conn.cursor()
 cur.execute(sql)
 print(cur.connections.messages)

这个代码执行大概需要5分钟,然后才会打印出我的结果。我在想,有没有办法在代码执行的时候,就一行一行地打印输出,而不是等到全部执行完了再一次性打印出来呢?

1 个回答

0

filmor说得对:要获取游标运行的结果。

sybpydb这个包是Sybase提供的一个PEP 249的实现。所以,你得到的Cursor对象有一些方法,比如fetchone和fetchall。

如果你想逐行获取结果并对其进行处理,你的代码可以这样写:

# Preparation your connection and cursor for fetching results
conn = sybpydb.connect(user=args.u, password=args.p, servername=args.s)
cur = conn.cursor()
cur.execute(sql)

# Reading all result one by one
for row in cur.fetchall():
    # Do something with your current results
    print(row)

# Closing cursor and connection
cur.close()
conn.close()

撰写回答