我真的对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文件)输入到数据库中。最后,我调用函数并打印出每一行;这就是错误发生的地方。
https://stackoverflow.com/questions/38425900
复制相似问题