繁体   English   中英

Python - 在文件打开时读取 Excel 文件

[英]Python - Read Excel files while file is open

Python新手在这里。 我有一个文件夹,里面装满了我想读入数据框的 Excel 文件。 以下代码效果很好,除非有人将数据输入到其中一个 Excel 文件中,否则我会收到“PermissionError: [Errno 13] Permission denied”消息。

transfolder = *folder where Excel files are located*
transfiles = os.listdir(transfolder)
transdf = pd.DataFrame()
df = pd.DataFrame()
for file in transfiles:
     df = pd.read_excel(os.path.join(transfolder,file), sheet_name = 'Main')
     transdf = transdf.append(df, ignore_index=True)

在任何给定的时间都有几个人在 Excel 文件中进行数据输入,所以我不能让他们全部离开。 有没有办法让它在打开时读取文件,比如 PowerQuery? 我会使用 PQ 但文件太大而且速度太慢。

我已经尝试过这个但没有运气 - 我认为它适用于旧版本: 如果文件在 Excel 中打开,pd.read_excel 会抛出 PermissionError

每当您想操作这些文件时,请创建它们的本地副本,将它们读入您的数据帧,删除本地副本。

请注意,您将使用上次保存的版本,因此鉴于有人正在编辑文件,您可能不会使用最新版本。

像往常一样,凌晨 3 点左右得到了答案......我添加了一个过滤器来删除临时文件,如下所示:

transfolder = *folder where Excel files are located*
transfiles = os.listdir(transfolder)
transdf = pd.DataFrame()
df = pd.DataFrame()
for file in transfiles:
     str = file
     if not str.startswith('~$'):
     df = pd.read_excel(os.path.join(transfolder,file), sheet_name = 'Main')
     transdf = transdf.append(df, ignore_index=True)

到目前为止,工作就像一个魅力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM