【问题标题】:Get header of csv file获取csv文件头
【发布时间】:2019-08-26 17:32:00
【问题描述】:

我有 3000 个 Excel 文件。我想获取每个文件的标题并将其存储为 csv。但是,我遇到了解析错误:

 'utf-8' codec can't decode byte 0xfa in position 1: invalid start byte

我已经看过这篇文章了。没有解决问题:UnicodeDecodeError: 'charmap' codec can't decode byte X in position Y: character maps to <undefined>

import glob
import pandas as pd

all_files = glob.glob("Converted Excels/*.xlsx")
file = all_files[0]

#Try 1
columns = []
with open(file, "r") as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    for row in csv_reader:
        columns.append([row])
        break

#Try 2
df = pd.read_csv(file, header=0, nrows=1)
df

这是一个示例文件。 https://docs.google.com/spreadsheets/d/194QD14g_L0NQK6j3yO2Et2ZzycfQDzJXu7vdlr20owA/edit?usp=sharing

我将它从 PDF 转换为 Excel。但是在转换过程中,我指定了 encoding="utf8"。

如何从该文件中获取标题?

非常感谢您的帮助。

【问题讨论】:

  • df = pd.read_csv('2011 abril 1.csv - 2011 abril 1.csv') 刚刚为我工作..
  • b'\x9d'.decode('cp437') 给出¥ - 所以你的文件可能在CP437,而不是UTF8,当你阅读它时你必须使用正确的endcoding
  • @furas,对不起。我更新了正确的错误代码。
  • @Erfan,你能解释一下那个符号吗?
  • 我也从链接下载文件,read_csv('2011 abril 1.csv - 2011 abril 1.csv') 也适用于我。 Linux Mint、Python 3.7、熊猫 0.24.1

标签: pandas csv export-to-csv reader


【解决方案1】:

.xlsx 不是 CSV 文件。您不能使用pandas.read_csv() 或模块csv 来读取.xlsx

对 excel 文件使用 pandas.read_excel() 或模块。见:www.python-excel.org

据我所知.xlsx 是带有 XML 文件的 ZIP 文件 - 所以您也可以尝试解压缩并读取 xml。

【讨论】:

    猜你喜欢
    • 2016-07-16
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 2020-12-19
    • 2021-10-03
    • 2019-10-14
    • 2012-11-25
    • 1970-01-01
    相关资源
    最近更新 更多