2014-05-20 44 views
0
import os, csv 


f=open("C:\\tempa\\file.csv", 'wb') #write to an existing blank csv file 
w=csv.writer(f) 
for path, dirs, files, in os.walk("C:\\tempa"): 
    for filename in files: 
     w.writerow([filename]) 

運行WIN7 64位最新的Python,使用anaconda spyderpyscripter問題無論是IDE的存在。簡單的python文件搜索和記錄到csv

我在文件夾一些媒體在TEMPAJPGPDFMOV ...我想獲得它們的所有文件列表,和代碼工作,但它停止沒有任何問題在第113行,沒有什麼特別的文件停下來,沒有怪異的字符。

我可以爲每個文件夾設置3個代碼塊來解決這個奇怪的錯誤。但它不應該有一個問題..的文件夾都在根文件夾,而不打算在子文件夾得太深:

C:\ 
-tempa 
-jpg 
-pdf 
-mov 

我聽說有與os.walk問題,但我並沒有什麼expext像怪異這個。

也許我需要一個f=close

+0

如果您打印的文件名,而不是將其寫入到CSV文件的? –

+0

我需要他們在一個csv文件作爲即時將要解析他們的文件名工作合併在其他csv文件..圖形ID使用熊貓。 – Meritosthenes

+0

thx格式化編輯布賴恩波薩斯.... – Meritosthenes

回答

0

在完全關閉之前,您正在檢查文件。 (f至少不會被任何範圍內的變量名引用)。如果在關閉文件之前檢查文件,則可能看不到最終的部分數據緩衝區。

使用file對象的上下文管理,以確保文件被刷新,並關閉在所有情況下:

import os, csv 

with open("C:\\tempa\\file.csv", 'wb') as f: #write to an existing blank csv file 
    w=csv.writer(f) 
    for path, dirs, files, in os.walk("C:\\tempa"): 
     for filename in files: 
      w.writerow([filename]) 
    # Now no need for f.close() 
+0

謝謝..多數民衆贊成在文件打開一段時間是真實的。我知道了。 – Meritosthenes