尝试使用 xlrd 或 shutil 访问文件夹中的文件时出现权限被拒绝的问题

permission denied issue when trying to access files in a folder with xlrd or shutil

编辑:我删除了它,但我打算取消删除,因为我认为它可能会有用。 post 实际发生的事情是我当时没有意识到的。

原始问题:我正在尝试打开一组 excel 个文件,其中一个当前已被另一个用户打开。所有其他文件都有效,但这个文件出现 'permission denied' 错误。

Windows 为您提供 "read only" 打开文件的选项,但我似乎无法在 python (xlrd) 中找到等效项,所以我想我会复制文件到一个临时位置并打开它;但这也不管用。无论哪种情况,我都会得到:

IOError: [Errno 13] Permission denied:

是否可以:

谢谢!

事实证明,我失败的文件也被其他用户打开,所以当我通过 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 文件即可。