创建一个循环来读取excel文件 - python

Posted

技术标签:

【中文标题】创建一个循环来读取excel文件 - python【英文标题】:Creating a loop to read excel files - python 【发布时间】:2020-12-23 15:50:37 【问题描述】:

我正在尝试创建一个循环来读取每个 excel 文件并对其执行计算。

我拥有的是:

n=150
for i in range(n):
   dw = pd.read_excel(str(i) + '.xlsx')
   print(dw)

(之后,我对它们进行了计算 - 我只是打印了结果以查看它是否正确导入了文件)

但是,当我运行它时,它会运行最后一个 excel 文件(名为 150.xlsx 的文件)150 次。 (而不是每个文件一次。)

有没有办法解决这个问题?

【问题讨论】:

你将无法达到 150 ?它将从 0 运行到 149。尝试将 n 更改为 151 上面的代码应该可以工作。 print (i) 确认迭代值。您可以添加dw = pd.read_excel(str(n) + '.xlsx') 正确检查运行代码。 谢谢!我已经检查过,它仍然无法正常工作。在 PyCharm 上也是如此——你可能知道的任何其他可能的原因? 【参考方案1】:

正如 Mohamed 已经说过的,你的代码应该可以正常工作,也许你不小心写了pd.read_excel(str(n)+'.xlsx')

或者,您可以使用os.walk 列出目录中的所有文件并使用文件名来代替:

import os

path = '<your path to excel files>'

files = []

# getting all files in directory
for (dirpath, dirnames, filenames) in os.walk(path):
    files.extend(filenames)

# opening every .xlsx file and performing calculations
for f in files:
    if f.endswith('.xlsx'):
        dw = pd.read_excel(os.path.join(path, f))
        # your calculation here      

【讨论】:

谢谢!我计算的性质使 read_excel 函数更合适(计算需要我参考以前基于文件夹的相同索引名称的计算,即'i'。)嗯,我觉得你和 Mohamed 都这么说很奇怪应该可以工作,但不是 - 在 pycharm 和 python 上。是否有其他解释? 我现在编辑了我的答案以使用read_excel() 功能,希望这会有所帮助。关于另一个问题,我在本地尝试过,没有任何问题。我创建了 4 个名为 1.xlsx4.xlsx 的 xlsx 文件,每个文件都包含“This is ”作为数据,并且完全使用了您的代码,没有任何错误。对此有多种解释,也许你的数据不小心都一样,也许是别的。但是你提供的代码是 100% 正确的。如果您可以分享您正在编写的实际脚本,也许我可以提供更多帮助。

以上是关于创建一个循环来读取excel文件 - python的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:创建一个从 excel 文件中选择行的循环

如何在同一循环中“从 .csv 读取并写入 excel”

python 用循环创建多个文件

python读取excel文件

python读取excel文件

python 写入excel 遇到缓冲区问题 程序要循环很多次,每次都要读取不同的数据有多也