2014-10-06 46 views
0

我真的是綠色和新的Python世界,我正在學習,因爲我去。 我想從sqlite數據庫中提取一系列的行。 (我已經完成)。 然後我寫這些到一個CSV文件。尋找一個目錄中的文件名與sqlite數據庫中的行進行比較並複製內容

我現在試圖比較來自該數據庫的一行,並查看具有相同值的文件名的目錄。 因此,如果行單元格數據是1000,則該文件將是目錄中其他長列表中的1000.txt。他們都在同一個文件夾中。

一旦找到該文件。然後,我想要讀取這些文件內容,然後將其添加到我創建的csv中的另一行。

所以我的主要問題是如何比較基於單元格數據的文件名的目錄(在單元格中沒有提供擴展名只是一個數字引用)。

# Open file, get lines, close file. 
# Probably prudent to add try-except here for bad file names. 
msgfile = {} 
filename = {} 
for row in c: 
    msgfile = msgID[row[1]] 
    for filenames in os.walk(r"D:\my_source_directory\"): 
##stuck here 
          f_open = open(msgfile,'r') 
          lines = f_open.readlines() 
          f_open.close() 
          print() 
+0

您不能將\字符作爲字符串中的最後一個字符,即使是原始字符串文字,除非您將其轉義。然而,在這種情況下,你只是不需要它。 – MattDMo 2014-10-06 01:37:01

+0

注意到並更改了謝謝 – BillSam 2014-10-06 23:14:59

回答

0

os.walk產生含有(current_dir, childrendirs, files)所以至少是元組,你的循環需要像for _, _, files in os.walk(...):,可能是你的問題的根源,但沒有太多在這裏去。

+0

我在考慮一些更多的研究,也許os.walk不是我需要的。因爲我已經有了我需要加載的值。它是從sql數據庫中的一列中提取的。我只需要看看row1並在目錄中找到匹配的名稱並打開該文件(其文本)並閱讀內容。然後我將它添加到我正在創建的新文件中。我只是堅持如何讓它比較我擁有的文件和我需要的文件 – BillSam 2014-10-07 00:35:19

相關問題