2013-02-28 47 views
1

有一個目錄:/家庭/ zurelsoft /文件 與文件名.sachitadhFebruary28,2013,18:45PMsolexa.zip.M9mw9e如何在python中使用os.path.getsize()和*?

有大量的文件是這樣的:

.sachitadhFebruary28,2013,18:45PMsolexa.zip.M 
.sachitadhFebruary28,2013,18:45PMsolexa.zip.KK 

它們存儲在數據庫中。

current_file = Queue.objects.all() 
     j = [i.file_session for i in current_file] 
     k = [str(i) for i in j] 
     new_file_size = [int(os.path.getsize(i+'*')) for i in k] 

我想得到像這樣的filsize,但我得到沒有這樣的目錄錯誤。我發現glob.glob()使用,但沒有工作。我怎樣才能做到這一點?

+0

/home/zurelsoft/files是一個目錄名,並且所有這些文件都在其下。看到我更新的問題。 – pynovice 2013-02-28 13:18:46

+1

「我發現'glob.glob()'使用過,但沒有工作。」 「沒有工作」的唯一答案是「做對了」。它具有相同的細節......什麼都不起作用? – glglgl 2013-02-28 13:26:00

回答

3

getsize需要正好一個文件名 - 任何你給它的東西都假定是一個文件名。爲了得到你想要的擴張,你想使用glob.glob - 想必,它沒有工作,因爲你不喜歡的東西:

os.path.getsize(glob.glob('/home/zurelsoft/*')) 

這總是會給一個例外,因爲glob不返回只有一個getsize期望的文件名 - 它返回所有匹配的列表。遍歷該列表以獲得每一個單獨 - 例如,

for filename in glob.glob('/home/zurelsoft/*'): 
    print(os.path.getsize(filename)) 

將打印每一個文件的大小,你的主目錄。

+0

返回空輸出。 – pynovice 2013-02-28 16:48:12

+0

沒關係工作正常! – pynovice 2013-02-28 16:50:46

+0

我有列表作爲glob.glob()的參數?它不工作。 – pynovice 2013-03-01 03:59:34

相關問題