创建一个循环来读取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.xlsx
到 4.xlsx
的 xlsx 文件,每个文件都包含“This is 以上是关于创建一个循环来读取excel文件 - python的主要内容,如果未能解决你的问题,请参考以下文章