2022年 11月 9日

Python 读取 Excel 表格的几种方法

1.使用python 内建的open()方法读取文本

        相对路径:example/ex2.txt,文件内容如下所示:

 测试内容,路径和内容,大家可根据自己心情设置。

使用open()方法读取:

  1. print('----使用 python自带的open() 读取文件-----')
  2. path = r'example/ex2.txt'
  3. frame = open(path)
  4. print(frame.readlines())

 此时,执行结果报错如下:

 我猜测open() 方法的默认编码不支持中文读取,假如 我把TXT 文件中的汉语删除,再次执行:

success!但是如何输出汉字哪?我猜测手动指定open()方法解析文本的编码方式 ,增加 encoding=’utf-8’。

   

  1. path = r'D:\PythonTest\20200925\example\ex2.txt'
  2. frame = open(path, encoding='utf-8')
  3. print(frame.readlines())
  4. frame.close()# 不用则把文件关闭

 

 完美读取出来!

不加会报错:

2.使用 pandas 读取

使用 ExcelFile ,通过将 xls 或者 xlsx 路径传入,生成一个实例。

  1. import pandas as pd
  2. xlsx = pd.ExcelFile(r'example/ex1.xlsx')
  3. print(xlsx)
  4. print(type(xlsx))
  5. print(pd.read_excel(xlsx, 'Sheet1'))

 Excel 的表格内容如下:

 此时报错:

 注意:读取 后缀名为 ‘.xlsx’ 的Excel文件,需要使用附加包 ‘xlrd’ (读取 .xls)和 ‘openpyxl’(读取 .xlsx),于是我就根据报错提示安装:

conda install xlrd

 安装结果:

 之后执行代码 依然报错:

 依然不支持读取。这时,我们再安装 ‘openpyxl’ 包:

conda install openpyxl

 此时 依然报错:

方法一:使用 engine=’openpyxl’ 读取 Excel文件。

  1. import pandas as pd
  2. # 使用 ExcelFile ,通过将 xls 或者 xlsx 路径传入,生成一个实例
  3. xlsx = pd.ExcelFile(r'example/ex1.xlsx' , engine='openpyxl') #
  4. print(type(xlsx))
  5. print(xlsx)
  6. print(type(xlsx))

此时可以正常读取文件表格,终于成功了:

法二:Package xlrd 默认安装的版本如下

 引用自 pandas无法打开.xlsx文件,xlrd.biffh.XLRDError: Excel xlsx file; not supported_氦合氢离子的博客-CSDN博客 来源网络,如有侵权联系删除。

更换 xlrd 的版本为 1.2.0。

执行一下代码:

  1. import pandas as pd
  2. # 使用 ExcelFile ,通过将 xls 或者 xlsx 路径传入,生成一个实例
  3. xlsx = pd.ExcelFile(r'example/ex1.xlsx') #
  4. print(type(xlsx))
  5. print(xlsx)
  6. print(type(xlsx))

 成功读取Excel 表格。

3.使用 pandas读取的简单方法

经过上一步的麻烦设置,我们不在理睬这2个包,开始尽情的使用python操作Excel表格。

直接使用 read_excel() 读取表格。

code如下,方便copy

  1. import pandas as pd
  2. path = r'D:\PythonTest\20200925\example\ex1.xlsx'
  3. frame = pd.read_excel(path) # 直接使用 read_excel() 方法读取
  4. frame

附录

公众号原文链接

知乎原文链接