编辑:我删除了这个,但我要取消删除,因为我认为它可能有用。并发布我当时没有意识到的实际情况。
原始问题:我正在尝试打开一组excel文件,其中一个目前由另一个用户打开。所有其他文件都可以工作,但是这个文件我得到了“权限被拒绝”的错误。
Windows为您提供了“只读”打开文件的选项,但我似乎无法在python(xlrd)中找到等效文件,所以我想我会将文件复制到临时位置并打开它;但这也不起作用。在任何一种情况下,我得到:
IOError: [Errno 13] Permission denied:
是否可以:
谢谢!
答案 0 :(得分:1)
事实证明,我失败的文件也是由其他用户打开的,所以当我通过Windows资源管理器访问它们时,其他用户打开文件会导致权限被拒绝错误;但真正的问题是,当我循环浏览文件夹时,我试图访问Excel为访问该文件的其他用户创建的临时文件。
因此,对于给定的文件" old_file.xlsx"用户已打开,创建了他们的excel实例"〜$ old_file.xlsx"
我是如何解决这个问题的:
files_to_check = [f for f in os.listdir(PATH) if os.path.isfile(f)]
files_to_check = [f for f in files_to_check if '~' not in f and 'xlsx' in f]
基本上,只要确保它们是我计划通过的非临时xlsx文件。