当前位置: 首页 > 面试题库 >

我可以导入CSV文件并自动推断定界符吗?

鲜于星波
2023-03-14
问题内容

我想导入两种CSV文件,有些使用“;” 对于定界符,其他使用“,”。到目前为止,我一直在接下来的两行之间切换:

reader=csv.reader(f,delimiter=';')

要么

reader=csv.reader(f,delimiter=',')

是否可以不指定分隔符,而让程序检查正确的分隔符?

下面的解决方案(Blender和sharth)对于用逗号分隔的文件(由Libroffice生成)似乎效果很好,但对于以分号分隔的文件(由MS
Office生成)却不起作用。这是一个用分号分隔的文件的第一行:

ReleveAnnee;ReleveMois;NoOrdre;TitreRMC;AdopCSRegleVote;AdopCSAbs;AdoptCSContre;NoCELEX;ProposAnnee;ProposChrono;ProposOrigine;NoUniqueAnnee;NoUniqueType;NoUniqueChrono;PropoSplittee;Suite2LecturePE;Council PATH;Notes
1999;1;1;1999/83/EC: Council Decision of 18 January 1999 authorising the Kingdom of Denmark to apply or to continue to apply reductions in, or exemptions from, excise duties on certain mineral oils used for specific purposes, in accordance with the procedure provided for in Article 8(4) of Directive 92/81/EEC;U;;;31999D0083;1998;577;COM;NULL;CS;NULL;;;;Propos* are missing on Celex document
1999;1;2;1999/81/EC: Council Decision of 18 January 1999 authorising the Kingdom of Spain to apply a measure derogating from Articles 2 and 28a(1) of the Sixth Directive (77/388/EEC) on the harmonisation of the laws of the Member States relating to turnover taxes;U;;;31999D0081;1998;184;COM;NULL;CS;NULL;;;;Propos* are missing on Celex document

问题答案:

为了解决该问题,我创建了一个函数,该函数读取文件的第一行(标题)并检测定界符。

def detectDelimiter(csvFile):
    with open(csvFile, 'r') as myCsvfile:
        header=myCsvfile.readline()
        if header.find(";")!=-1:
            return ";"
        if header.find(",")!=-1:
            return ","
    #default delimiter (MS Office export)
    return ";"


 类似资料:
  • 问题内容: 我正在尝试使用SSIS将Csv文件导入SQL SERVER 这是一个数据看起来像的例子 Csv列不包含文本限定符(引号) 我使用SSIS创建了一个简单的程序包,将其导入到SQL中,但有时SQL中的数据如下所示 原因是somtimes [Student_Notes]列包含用作列定界符的逗号(,),因此未正确导入行 有什么建议 问题答案: 一个警告:我不是常规的C#编码器。 但是无论如何,

  • 本文向大家介绍R导入.csv文件,包括了R导入.csv文件的使用技巧和注意事项,需要的朋友参考一下 示例 使用base R导入 可以使用read.csv来包装逗号分隔的值文件(CSV),该文件可以包装read.table,但可用于sep = ","将分隔符设置为逗号。 用户友好选项file.choose允许浏览目录: 笔记 与不同read.table,read.csv默认为header = TRU

  • 我在OS X 10.6.8上运行PostgreSQL 9.2.6。我想从带有列标题的CSV文件导入数据到数据库。我可以用语句做到这一点,但前提是我首先手动创建一个表,其中包含CSV文件中每个列的列。有没有办法根据CSV文件中的标题自动创建此表? 每个问题我都试过了 但我只是得到了这个错误: 如果我首先创建一个没有列的表: 创建测试表 我得到: 我在PostgreSQL COPY文档中找不到任何关于

  • 我尝试创建一个redux-react应用程序,在该应用程序中,用户可以导入一个CSV文件,然后将其存储在数据库中。现在,我在前端工作,我想在那里创建一个代码,用户可以选择一个csv文件,从他们的计算机,他们想下载,然后文件发送到后端。我已经使用csvReader读取CSV文件,但我不知道如何将数据发送到后端。我在后端使用nestJS。我想一次发送整个CSV文件,但我不知道如何解决这个问题。我是初学

  • 在以下代码中: 由于lambda不可序列化,以下代码行无法编译: 我的问题是,让lambda实现可序列化有什么语法上的好处吗,还是我必须让它成为一个非匿名类?