最大()抛出错误在命令提示符但不IDLE
我不知道为什么,但我一直在通过批处理文件运行的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没有问题。但在脚本中,它一直在失败,但在运行批处理文件时只有只有。
png_files
中没有元素。确保您的glob调用有权查看该目录,该目录中有文件,并且该目录存在。
我已检查并重复检查了这一点。我可以完全访问该位置。批处理文件也以管理员身份运行,因此不应该遇到任何问题。事实上,我有一个重复的脚本,检查相同的位置,它工作正常。唯一的区别是,在这个脚本中,我上传了它发现的任何PNG到一个网站。 –
@ATCH_torn当你打印(png_files)时,结果是什么? –
这里有超过100个文件,所以我只是'print(png_files [:2])',但是我得到的结果是:'['X:\\ Projects \\ Integration \\ PNGs \\ 07102017 06.png', 'X:\\ Projects \\ Integration \\ PNGs \\ 07112017 02.png']' –
你是否以管理员身份运行IDLE? –
不是天生没有。但是,该批处理文件以管理员身份运行。 –
启用UAC后,系统将使用两个令牌(受限令牌和服务可用于创建升级过程的提升令牌)登录管理员帐户。每个令牌都有自己的登录会话和安全上下文,所以每个令牌都有自己的一套DOS设备映射。因此,受限制令牌环境中由资源管理器创建的映射网络驱动器“X:”对于提升进程不可见 - 至少在默认情况下不可见。 – eryksun