我真的很困惑sqlite部分,我打印出我的数据库,因为我在每一行的开头都得到一个'u',但它没有'',但我认为不是接受为字符串?这只发生在这一个程序上(我也在其他程序上测试过)。
我多次检查了代码(当我用'SQLite数据库浏览器'打开它时,它没有出现在数据库中)
所以这就是代码:
#!/usr/bin/python
import sqlite3
import os
def list_n_convert(way):
if way == 'mov':#movie search
output = os.popen("find '/home/fugo/' -name '*.mp4' -printf '%f\n'").read()
word = ''
lyst = []
for letter in output:
if letter != '\n':
word += str(letter)
else:
lyst.append(word)
word = ''
return lyst
#Loop to create entries
def entry_maker(lyst, column):
for count in range(len(lyst)):
cur.execute("INSERT OR IGNORE INTO myliltable ({}) VALUES (?)".format(column), (lyst[count],))
con.commit()
if __name__ == '__main__':
#necessities for start-up of sql-lite
con = sqlite3.connect('movie.db')
cur = con.cursor()
#Create a table, if it's non-existent
cur.execute('CREATE TABLE IF NOT EXISTS myliltable (name TEXT PRIMARY KEY, cover TEXT, genre TEXT)')
entry_maker(list_n_convert('mov'), 'name')
cur.execute('SELECT * FROM myliltable')
for row in cur.fetchall():
print(row) #print each row in a line <--- 'ERROR' happens here
cur.close()
con.close()
这是输出的样子:
(u'Umbra.mp4', None, None)
(u'xd.mp4', None, None)
(u'Nice.mp4', None, None)
(u'Haha.mp4', None, None)
我将解释该程序的功能,也许有助于找到错误:
第一个函数'list_n_convert'在我的主文件夹中搜索结尾为'.mp4'的任何文件,然后将搜索结果转换为字符串并将它们添加到列表中。
第二个为列表中的每个元素(每个mp4文件)输入数据库。最后,我调用函数,让每行打印出来;这是错误发生的地方。
答案 0 :(得分:0)
u'基本上是'this is unicode'的语法。使用$('#preview-table').tableExport({type:'png',escape:'false'});
获取字符串。