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

时间:2016-03-24 13:57:29

标签: python xlrd shutil

编辑:我删除了这个,但我要取消删除,因为我认为它可能有用。并发布我当时没有意识到的实际情况。

原始问题:我正在尝试打开一组excel文件,其中一个目前由另一个用户打开。所有其他文件都可以工作,但是这个文件我得到了“权限被拒绝”的错误。

Windows为您提供了“只读”打开文件的选项,但我似乎无法在python(xlrd)中找到等效文件,所以我想我会将文件复制到临时位置并打开它;但这也不起作用。在任何一种情况下,我得到:

IOError: [Errno 13] Permission denied:

是否可以:

  • 在xlrd
  • 中以只读模式(如windows)打开excel文件
  • 复制当前由其他用户使用的文件

谢谢!

1 个答案:

答案 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文件。