gpt4 book ai didi

python - 在 python 中使用 csv 模块读取 .xlsx

转载 作者:太空狗 更新时间:2023-10-29 20:39:28 31 4
gpt4 key购买 nike

我正在尝试使用 csv 模块读取 .xlsx 格式的 excel 文件,但即使使用我的方言和编码,我在使用 excel 文件时也没有任何运气指定的。下面,我展示了我尝试过的不同编码的不同尝试和错误结果。如果有人能指出我可以用来在 Python 中读取 .xlsx 文件的正确编码、语法或模块,我将不胜感激。

使用下面的代码,我得到以下错误:_csv.Error: line contains NULL byte

#!/usr/bin/python

import sys, csv

with open('filelocation.xlsx', "r+", encoding="Latin1") as inputFile:
csvReader = csv.reader(inputFile, dialect='excel')
for row in csvReader:
print(row)

使用下面的代码,我得到以下错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 16: invalid continuation byte

#!/usr/bin/python

import sys, csv

with open('filelocation.xlsx', "r+", encoding="Latin1") as inputFile:
csvReader = csv.reader(inputFile, dialect='excel')
for row in csvReader:
print(row)

当我在 encoding 中使用 utf-16 时,出现以下错误:UnicodeDecodeError: 'utf-16-le' codec can't decode位置 570-571 中的字节:非法 UTF-16 代理项

最佳答案

您不能使用 Python 的 csv 库来读取 xlsx 格式的文件。您需要安装和使用不同的库。例如,您可以使用 openpyxl如下:

import openpyxl

wb = openpyxl.load_workbook("filelocation.xlsx")
ws = wb.active

for row in ws.iter_rows(values_only=True):
print(row)

这会将文件中的所有行显示为行值列表。 Python Excel网站给出了其他可能的例子。


或者,您可以创建一个行列表:

import openpyxl

wb = openpyxl.load_workbook("filelocation.xlsx")
ws = wb.active

data = list(ws.iter_rows(values_only=True))

print(data)

注意:如果您使用的是较旧的 Excel 格式 .xls,则可以改用 xlrd 库。不过,这不再支持 .xlsx 格式。

import xlrd

workbook = xlrd.open_workbook("filelocation.xlsx")
sheet = workbook.sheet_by_index(0)
data = [sheet.row_values(rowx) for rowx in range(sheet.nrows)]

print(data)

关于python - 在 python 中使用 csv 模块读取 .xlsx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35744613/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com