我需要访问多个密码保护的.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)
1条答案
按热度按时间xriantvc1#
files
将只是文件的名称,您注解掉的print(files)
应该已经清楚了。必须与path
连接;否则,open
将只在当前目录中查找。例如,使用:
您还可以使用更直接的方法处理
glob.glob()
,它将生成与目录/文件模式匹配的文件: