我有一大堆的文件在與nameid_cityid.txt,名爲填充NameID目錄和MYDATA表cityid是名(整數(10))和城市的ID(整數(10)) 。如何在Python和MySQL中更優雅地進行查找?
雖然下面的解決方案工作,我做的類型轉換,因爲使用fetchall取「L」和填充NameID的文件名元組,cityid是字符串,..
如果你能提出的Python的或更優雅的方式做同樣的事情,那對我和社區會很棒!
我想實現: 查找目錄沒有在數據庫中的記錄,然後做一些與該文件,如解析/移動/刪除這些文件。
MySQL表MYDATA:
nameid cityid
15633 45632
2354 76894
的Python:
for pdffile in os.listdir(filepath):
cityid, nameid = pdffile.strip('.txt').split('_')[0], pdffile.strip('.txt').split('_')[1]
cursor.execute("select cityid, nameid from mydata")
alreadyparsed = cursor.fetchall()
targetvalues = ((str(cityid), str(nameid)) for cityid, nameid in alreadyparsed)
if (int(cityid), int(nameid)) in alreadyparsed:
print cityid, nameid, "Found"
else:
print cityid, nameid, "Not found"
我喜歡基於集合的方法。我甚至不需要做這個'nameid,cityid = map(int,pdffile.rsplit('。',1)[0] .split('_'))'',因爲我們已經有了所需的文件列表因爲現有的已經被減掉了)。謝謝! – ThinkCode