gpt4 book ai didi

php - 自动检测文件中是否存在 CSV header

转载 作者:IT王子 更新时间:2023-10-29 00:02:49 26 4
gpt4 key购买 nike

小问题:如何自动检测 CSV 文件的第一行是否有标题?

详细信息:我编写了一个小型 CSV 解析引擎,它将数据放入一个对象中,我可以将其作为(大约)内存数据库进行访问。原始代码是为解析具有可预测格式的第三方 CSV 而编写的,但我希望能够更普遍地使用此代码。

我正在尝试找到一种可靠的方法来自动检测 CSV header 的存在,以便脚本可以决定是使用 CSV 文件的第一行作为键/列名称,还是立即开始解析数据。由于我只需要一个 bool 测试,我可以在自己检查 CSV 文件后轻松指定一个参数,但我宁愿不必(去自动化)。

我想我必须将前 3 个解析为 ? CSV 文件的行并查找某种模式以与标题进行比较。我做了三个特别糟糕的案例的噩梦,其中:

  1. 标题出于某种原因包含数字数据
  2. 前几行(或 CSV 的大部分)为空
  3. 标题和数据看起来太相似了,无法区分

如果我能得到“最佳猜测”并让解析器因错误而失败,或者如果它无法决定则发出警告,那没关系。如果这在时间或计算方面会非常昂贵(并且花费的时间比它应该节省的时间还多)我会很高兴地放弃这个想法并回去处理“重要的事情”。

我正在使用 PHP,但这更像是一个算法/计算问题,而不是特定于实现的问题。如果有一个我可以使用的简单算法,那就太好了。如果您能指出一些相关的理论/讨论,那也很好。如果有一个巨大的库可以进行自然语言处理或 300 种不同的解析,我不感兴趣。

最佳答案

正如其他人所指出的,您无法做到 100% 可靠。然而,在某些情况下“基本正确”是有用的 - 例如,具有 CSV 导入功能的电子表格工具通常会尝试自行解决这个问题。以下是一些倾向于指示第一行不是标题的试探法:

  • 第一行的列不是字符串或为空
  • 第一行的列并不都是唯一的
  • 第一行似乎包含日期或其他常见数据格式(例如,xx-xx-xx)

关于php - 自动检测文件中是否存在 CSV header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2670515/

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