在Python 2.7中,我使用os.listdir
來生成文件夾中的文件列表。有很多文件,我與該文件夾的連接速度很慢,所以完成時間最多可能需要30秒。這裏有一個例子:當os.listdir生成一個列表(剩餘時間)時測量進度(Python)
import os
import time
start_time = time.time()
dir_path = r'C:\Users\my_name\Documents\data_directory' #example path
file_list = os.listdir(dir_path)
print 'it took', time.time() - start_time, 'seconds'
這是一個Tkinter的GUI我工作,我希望做一個狀態欄顯示多少時間或百分比留給這個步驟需要較長的時間(約30秒)。
有沒有辦法顯示剩餘時間或剩餘百分比來完成file_list = os.listdir(dir_path)
步?
如果'listdir'中的延遲是因爲「你的文件夾連接速度很慢」,這似乎超出了'listdir'或python的範圍。 (大概)網絡強加的延遲是由你的操作系統處理的,並且對python是透明的,所以回答你的問題,不,至少不容易。 – jedwards
想不到一種方法來創建一個可以顯示實際進度的「真實」加載欄。這是可行的,但我只能想到會讓事情放緩的事情。所以我會建議創建一個虛假的加載欄,無論進度如何都會更新。你可以粗略估計它應該多快移動並自行解決。你可以在單獨的線程中運行'listdir'和假加載欄,這樣兩者都可以正確更新。但是,這不是一個真正的答案,只是一個黑客的想法。 – makaveli
謝謝你的回覆。該文件夾位於我有共享連接的服務器上。我無法做任何事情來改善連接,但我會嘗試將'listdir'調用放在一個單獨的線程中,以便GUI在這30秒內不會凍結。再次感謝!! –