2017-07-17 75 views
0

我不知道爲什麼,但我一直在通過批處理文件運行的Python腳本錯誤,但通過IDLE運行時沒有錯誤。它一直沒有在這條線:最大()拋出錯誤在命令提示符但不IDLE

png_files = glob.glob("X:\\Projects\\Integration\\PNGs\\*.png") 
latest_png = max(png_files, key = os.path.getctime) 

導致:

Traceback (most recent call last): 
    File "C:\Users\A\Documents\PYTHON\Data.py", line 460, in <module> 
     latest_png = max(png_files, key = os.path.getctime) 
ValueError: max() arg is an empty sequence 

如果我運行IDLE只是這些線路本身,它們返回的最新PNG沒有問題。但在腳本中,它一直在失敗,但在運行批處理文件時只有只有

+0

你是否以管理員身份運行IDLE? –

+0

不是天生沒有。但是,該批處理文件以管理員身份運行。 –

+0

啓用UAC後,系統將使用兩個令牌(受限令牌和服務可用於創建升級過程的提升令牌)登錄管理員帳戶。每個令牌都有自己的登錄會話和安全上下文,所以每個令牌都有自己的一套DOS設備映射。因此,受限制令牌環境中由資源管理器創建的映射網絡驅動器「X:」對於提升進程不可見 - 至少在默認情況下不可見。 – eryksun

回答

1

png_files中沒有元素。確保您的glob調用有權查看該目錄,該目錄中有文件,並且該目錄存在。

+0

我已檢查並重複檢查了這一點。我可以完全訪問該位置。批處理文件也以管理員身份運行,因此不應該遇到任何問題。事實上,我有一個重複的腳本,檢查相同的位置,它工作正常。唯一的區別是,在這個腳本中,我上傳了它發現的任何PNG到一個網站。 –

+0

@ATCH_torn當你打印(png_files)時,結果是什麼? –

+0

這裏有超過100個文件,所以我只是'print(png_files [:2])',但是我得到的結果是:'['X:\\ Projects \\ Integration \\ PNGs \\ 07102017 06.png', 'X:\\ Projects \\ Integration \\ PNGs \\ 07112017 02.png']' –