CSV全称是:Comma Separated Values 或者 Character Separated Values。

尽管第一种说法更常见,但我觉得还是第二种说法更确切一些,因为你可以使用其它字符做分隔符。

使用逗号做分隔符的CSV文件有一个好处:你可以直接用Excel打开。如果使用其它分隔符,比如“|”,你必须告诉Excel该文件使用“|”作分隔符,Excel才能把它导入进来。

前几天,project manager告诉我:我们有许多CSV文件,都是使用“|”做分隔符,用Excel打开的时候比较麻烦,用户想在Excel中直接打开。这样就需要使用“,”做分隔符。但是文件中有些字段含有逗号,必须对这些逗号特殊处理,才能保证CSV文件在Excel中正确打开。他还给了我一个算法:

如果字段中有逗号(,),该字段使用双引号(")括起来;

如果该字段中有双引号,该双引号前要再加一个双引号,然后把该字段使用双引号括起来。

看完project manager的要求,我真是满头起包啊。在IT业混了十几年了,竟然不知道这样处理逗号。

举几个例子:

字段处理前

字段处理后

abc,d2

"abc,d2"

ab"c,d2

"ab""c,d2"

"abc

"""abc"

""

""""""

如果字段中有两个挨着的双引号,比如:aaa""ccc。这种情况不用特殊处理。这是我在写这篇博客的时候才想起来的,赶忙使用Excel测试了一下。还好,不用特殊处理就能正常打开,不然我还得改程序。当然了,如果你把它处理成:"aaa""""ccc" Excel也能正常打开。事后总结总结真是有好处啊。

另外,如果某字段第一个字符是空格,第二个字符是双引号,这种情况不用特殊处理。Project Manager在给我描述算法的时候,也举了一个字段只有一个双引号的例子,但他不小心在双引号前面加了个空格,把问题掩盖过去了。

我是在WinXP和MS Excel2007下测试的。如果运行在其他环境和应用程序下,还需进行测试,规则可能不一样。

csv文件去掉最后的逗号_CSV文件/内容中的逗号处理相关推荐

  1. python中csv文件通过什么表示字符_python_写入csv文件时候无法进行原样写入(写入字符串中出现逗号,时候,csv文件自动分成两个单元格)...

    问题描述: 写入csv文件时候无法进行原样写入(写入字符串中出现逗号","时候,csv文件自动分成两个单元格) with open("test.csv",&qu ...

  2. 使用正则表达式批量去除第一个逗号前的内容(含逗号)以及去除最后一个逗号后面的内容

    使用正则表达式批量去除第一个逗号前的内容(含逗号)以及去除最后一个逗号后面的内容 sublime 工具处理文本文件 需要格式化的处理,主要是查找匹配,然后用空白替换就可以. 1. 使用正则表达式批量去 ...

  3. 逗号分割符--字段中含逗号等情况的解析方法Java实现

    最近在处理文本字符串时,没一行数据都是按照逗号分割的,每个字段值一般情况是带有双引号的,但是有的字段值里面还包含逗号,甚至有的字段就没有双引号,这个分割起来就有点麻烦了 下面说一下我解决方法,如果谁有 ...

  4. python逗号怎么用_Python中的逗号的特殊用法

    Python中的逗号的特殊用法 发布时间:2020-08-25 09:50:20 来源:亿速云 阅读:99 作者:Leah 今天就跟大家聊聊有关Python中的逗号的特殊用法,可能很多人都不太了解,为 ...

  5. python输出word内容_Django输出word文件(.doc),只在内容中显示原始html

    除非您有某种方法将您的响应(这里假设为HTML)转换为.doc文件,否则您将得到一个文本文件,其中包含扩展名为.doc的响应.如果您愿意使用.docx文件,那么有一个很棒的python库python- ...

  6. php 数据导出到excel文件,PHP导出数据到excel文件

    下面介绍一个很另类的php导出数据到xls文件的方法,用到的函数有pack,iconv //上面三个自定义函数很重要,大家自行揣摩 function xlsBOF() { echo pack(&quo ...

  7. mysql中获取逗号前边的内容,冒号后边的内容

    每天一点点,记录工作中实操可行 mysql中获取逗号前边的内容 表名: table_a 字段 : comment 字段comment 的内容: 支付宝充值,流水号: 2000513798T157196 ...

  8. c++ 写入文件_术业有专攻:逗号分割文件csv

    本文约2700字,建议阅读时间13~18分钟 关键字:python,逗号分隔文件,字符分割,csv 逗号分隔文件是电子表格和数据库的常用输入与输出格式. 1.相关函数 (1)csv格式数据读取 rea ...

  9. python csv读取数据 去掉标题-Python读csv文件去掉一列后再写入新的文件实例

    用了两种方式解决该问题,都是网上现有的解决方案. 场景说明: 有一个数据文件,以文本方式保存,现在有三列user_id,plan_id,mobile_id.目标是得到新文件只有mobile_id,pl ...

最新文章

  1. 手游为什么要热更新,C#为什么不能热更新,LUA为什么可以
  2. IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述
  3. (转)如果知道dll文件是面向32位系统还是面向64位系统的?
  4. javascript模版引擎-tmpl的bug修复与性能优化
  5. Asp.Net Core WebAPI使用Swagger时API隐藏与分组
  6. Linux多线程实践(10) --使用 C++11 编写 Linux 多线程程序
  7. 面试:MySQL 架构
  8. 本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案
  9. react周期函数介绍
  10. win10 打开注册表
  11. 【并发】关于并发、超卖处理的思路
  12. Linux 时间戳获取及转换
  13. 领域驱动设计实践合订版(战略+战术)
  14. 数值分析思考题 (钟尔杰版) 参考解答——第三章
  15. 【荣耀内推】2023届荣耀校招开启啦
  16. 【网络基础】通俗易懂的搞明白什么是IP地址(小白向)
  17. html数独游戏源代码,数独算法及源代码
  18. [解疑][TI]TI毫米波雷达系列(三):调频连续波雷达回波信号3DFFT处理原理(测距、测速、测角)
  19. Ubuntu下VMware安装win10虚拟机教程,以及卡死报错解决方法
  20. 通过拖坠自动生成html页面,网页制造开端—html.ppt

热门文章

  1. 应用Excel透视表计算同环比
  2. 一步一步教你做ios推送 pem证书制作 php推送
  3. CT的个人·学习总结
  4. shell脚本----正则表达式
  5. 2021国内短信验证码价格短信服务商TOP6
  6. Java 在数据库中生成一年的假日与工作日信息
  7. ZOJ3323 Somali Pirates java
  8. 京瓷3501i,原稿台复印纸张识别故障
  9. iOS适配iPhoneX/iphone11/iphone12 导航栏高度 (刘海屏幕)
  10. (转载)建设高效团队的七十五条原则