【发布时间】:2012-01-15 23:11:11
【问题描述】:
我有一个数据库:
正如您在 'desc' 列中看到的,文本的长度是可变的(这意味着我从该数据库中提取的任何两个字符串都不会具有相同的长度)。我最终会在这个数据库中添加更多条目,但这是我目前正在测试和开始的内容。
现在,我有以下 python 代码来抓取这些字符串块并显示它们:
cmd = input(Enter command:)
sql = "SELECT cmd,`desc` FROM table WHERE cmd = '"+ cmd +"'"
cursor.execute(sql)
result = cursor.fetchall()
for row in result:
print("Command: "+ row[0] +":\n")
print("Description: "+ row[1][:40] +"\n")
if (len(row[1]) > 40):
print(row[1][40:85])
if (len(row[1]) > 85):
print(row[1][85:130])
if (len(row[1]) > 130):
print(row[1][130:165])
if (len(row[1]) > 165):
print(row[1][165:])
这里的拆分在一定程度上起作用,例如:
命令:关闭:
说明:此命令将创建一个“关闭”按钮
n 在调用字符的消息窗口中
演员。如果屏幕上当前没有窗口,t
他的脚本执行将结束。
正如您在上面的输出示例中看到的那样,拆分会导致一些字符在单词中间被截断。鉴于字符串的长度可以是介于...20 个总字符和最多 190 个之间的任何长度,并且由于空间限制,我想将字符串分成多个...8 个单词的块,我将如何去关于这样做?
【问题讨论】:
-
使用参数替换而不是手动构造 sql 字符串,例如
cursor.execute('select * from commands where cmd=?', (cmd,))。你不需要调用cursor.fetchall(),你可以直接迭代它:for row in cursor: ...
标签: python string string-formatting