excel 文件未找到错误:[错误2]在“with open”命令中没有这样的文件或目录

ubbxdtey  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(166)

我需要访问多个密码保护的.xls文件。它们都在一个文件夹中。
我首先要找到所有相关的文件取决于文件结束,然后选择取决于如何文件名开始
第一部分工作,我得到显示的所有.xls文件在该文件夹中,以及第二部分,我搜索一个特定的文件名。现在,当尝试打开加密文件时(我正在使用msoffcrypto)
我只想打开加密的“EXAMPLE_File”
出现FileNotFoundError:[错误2]没有这样的文件或目录
完整代码:

import msoffcrypto
import io
import pandas as pd
import os

decrypted = io.BytesIO()

# check what files are in the folder
path = "/Users/PATH/Desktop/Workspace/Projects"
list_of_directory = os.listdir(path)

# start looping through each file
for files in list_of_directory:
    # get all files that end with ".xls"
    if files.endswith(".xls"):
        # print(files)
        # get all files that start with "EXAMPLE_File"
        if files.startswith("EXAMPLE_File"):
            # print(files)
            # open password protected .xls
            with open(files, 'r') as f:
                excel = msoffcrypto.OfficeFile(f)
                excel.load_key('001234')
                excel.decrypt(decrypted)

df = pd.read_excel(decrypted)
print(df)
xriantvc

xriantvc1#

files将只是文件的名称,您注解掉的print(files)应该已经清楚了。必须与path连接;否则,open将只在当前目录中查找。
例如,使用:

fullname = os.path.join(path, files)
...
with open(fullname, 'rb') as f:
    ...

您还可以使用更直接的方法处理glob.glob(),它将生成与目录/文件模式匹配的文件:

import glob

for file in glob.glob('/Users/PATH/Desktop/Workspace/Projects/*.xls'):
    with open(file, 'rb') as f:
        ...

相关问题