2017-07-17 51 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']' –