gpt4 book ai didi

python - 如何将 csv.Sniffer 用于 2 种不同的 CSV 类型?

转载 作者:行者123 更新时间:2023-12-03 15:10:03 25 4
gpt4 key购买 nike

我想读取 2 种不同类型的 CSV 文件:

  • 一个带 ','作为分隔符
  • 一个带 ';'作为分隔符

  • 我试图通过执行以下操作来检查我正在使用的分隔符:
    dialect = csv.Sniffer().sniff(csvfile, [',', ';'])  
    data = csv.reader(csvfile, dialect)

    但后来我得到了 TypeError : expected string or buffer .

    如果我这样做,它会起作用,但是我不知道何时使用什么分隔符。
    data = csv.reader(csvfile, delimiter = ",")  
    data = csv.reader(csvfile, delimiter = ";")

    有人能帮助我吗?

    最佳答案

    嗅探器期望 sample string ,不是文件。您需要做的就是:

    dialect = csv.Sniffer().sniff(csvfile.readline(), [',',';'])
    csvfile.seek(0)
    data = csv.reader(csvfile, dialect)

    查找很重要,因为您正在使用 readline 命令移动文件中的当前位置,并且您需要重置回文件的开头。否则你会丢失数据。

    关于python - 如何将 csv.Sniffer 用于 2 种不同的 CSV 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15093952/

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