我正在尝试从 db 中获取 user_name + Father_name 并与目录中文件名的子字符串匹配。然后如果文件存在则更新数据库中的值。如何做到这一点。请不要将其标记为已问过。我需要答案。
到目前为止我已经尝试过
数据看起来像这样
file_names = ['amanatta.0.jpg', 'amanatta.1.jpg', 'amanatta.10.jpg', 'amanatta.11.jpg', 'amanatta.12.jpg',
'amanatta.13.jpg', 'amanatta.14.jpg', 'amanatta.15.jpg', 'amanatta.16.jpg', 'amanatta.2.jpg',
'amanatta.3.jpg', 'amanatta.4.jpg', 'amanatta.5.jpg', 'amanatta.6.jpg', 'amanatta.7.jpg',
'amanatta.8.jpg', 'amanatta.9.jpg', 'habibaman.0.jpg', 'habibaman.1.jpg', 'habibaman.10.jpg',
'habibaman.11.jpg', 'habibaman.12.jpg', 'habibaman.13.jpg', 'habibaman.14.jpg', 'habibaman.15.jpg',
'habibaman.16.jpg', 'habibaman.2.jpg', 'habibaman.3.jpg', 'habibaman.4.jpg', 'habibaman.5.jpg',
'habibaman.6.jpg', 'habibaman.7.jpg', 'habibaman.8.jpg', 'habibaman.9.jpg', 'luqmanaman.0.jpg',
'luqmanaman.1.jpg', 'luqmanaman.10.jpg', 'luqmanaman.11.jpg', 'luqmanaman.12.jpg',
'luqmanaman.13.jpg', 'luqmanaman.14.jpg', 'luqmanaman.15.jpg', 'luqmanaman.16.jpg',
'luqmanaman.2.jpg', 'luqmanaman.3.jpg', 'luqmanaman.4.jpg', 'luqmanaman.5.jpg',
'luqmanaman.6.jpg', 'luqmanaman.7.jpg', 'luqmanaman.8.jpg', 'luqmanaman.9.jpg']
user_names =['habibaman', 'luqmanaman', 'amanatta']
数据库
table name -> users
column name -> [ u_misid, u_name, u_fname, u_dataset]
代码
def updatestatus():
query1 = "select `u_misid`, `u_name`, `u_fname` from users"
cur.execute(query1)
rows = cur.fetchall()
for item in rows:
for (dirpath, dirnames, filename) in os.walk('modeldata/photosamples/'):
fnl = item[1].lower() + item[2].lower()
if filename[0].startswith("{0}".format(fnl)):
query2 = "update users set `u_dataset`=%s where u_misid=%s"
values = (1, item[0])
cur.execute(query2, values)
conn.commit()
updatestatus()
如果 file_name(sub string) 存在与 user_name 匹配,则更新 user 表中的 u_dataset
我通过放置一个额外的循环并遍历文件名来实现这一点。代码如下。
代码
def updatestatus():
query1 = "select `u_misid`, `u_name`, `u_fname` from users"
self.cur.execute(query1)
rows = self.cur.fetchall()
for item in rows:
fnl = (item[1].lower() + item[2].lower() + item[0]).replace(" ", "")
for (dirpath, dirnames, filenames) in os.walk('modeldata/photosamples/'):
status = False
if len(filenames) <= 0:
query4 = "update users set `u_dataset`=%s where u_misid=%s"
values4 = (0, item[0])
self.cur.execute(query4, values4)
self.conn.commit()
else:
for name in filenames:
if name.startswith("{0}".format(fnl)):
status = True
if status == True:
query2 = "update users set `u_dataset`=%s where u_misid=%s"
values = (1, item[0])
self.cur.execute(query2, values)
self.conn.commit()
break
else:
query3 = "update users set `u_dataset`=%s where u_misid=%s"
values3 = (0, item[0])
self.cur.execute(query3, values3)
self.conn.commit()
threading.Timer(10, updatestatus).start()
updatestatus()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句