当前位置: 首页 > news >正文

中国工程建设监理网站网站建设带购物车

中国工程建设监理网站,网站建设带购物车,房产中介公司网站源码,wordpress分销平台csv文件完整操作总结 1.概述 csv 模块主要用于处理从电子数据表格Excel或数据库中导入到文本文件的数据#xff0c;通常简称为 comma-separated value #xff08;CSV#xff09;格式因为逗号用于分离每条记录的各个字段。 2.读写操作 2.1.测试数据 创建一个test.csv文…csv文件完整操作总结 1.概述 csv 模块主要用于处理从电子数据表格Excel或数据库中导入到文本文件的数据通常简称为 comma-separated value CSV格式因为逗号用于分离每条记录的各个字段。 2.读写操作 2.1.测试数据 创建一个test.csv文件复制下面内容到文件中 Title 1,Title 2,Title 3,Title 4 1,a,08/18/07,å 2,b,08/19/07,∫ 3,c,08/20/07,ç2.2.读取 从 CSV 文件中读取数据可以使用 reader() 函数来创建一个读取对象。 这个读取对象顺序处理文件的每一行可以把它当成迭代器使用 例如 import csvwith open(test.csv, rt) as f:reader csv.reader(f)for row in reader:print(row)reader() 的第一个参数指源文本在这个例子中是一个文件但它可以是任何可迭代对象 StringIO 实例list 等。第二个参数是可选的可用于控制输入的数据如何被解析。 [Title 1, Title 2, Title 3, Title 4] [1, a, 08/18/07, å] [2, b, 08/19/07, ∫] [3, c, 08/20/07, ç]2.3.写入 写入 CSV 文件和读取它们一样简单。使用 writer() 方法创建一个写入对象然后使用 writerow() 去输出每一行。 import csvunicode_chars å∫çwith open(testout.csv, wt) as f:writer csv.writer(f)writer.writerow((Title 1, Title 2, Title 3, Title 4))for i in range(3):row (i 1,chr(ord(a) i),08/{:02d}/07.format(i 1),unicode_chars[i],)writer.writerow(row)print(open(testout.csv, rt).read())这个例子的输出和上面读取的例子看起来有些不同是因为这里有的值没有加引号 Title 1,Title 2,Title 3,Title 4 1,a,08/01/07,å 2,b,08/02/07,∫ 3,c,08/03/07,ç 2.4.引号 写入时默认的引用行为不同所以之前示例中的第二和第三个字段未被引用。 要添加引号请将 quoting 参数设置为其他引用模式。 writer csv.writer(f, quotingcsv.QUOTE_NONNUMERIC)在这个例子中 QUOTE_NONNUMERIC 会给所有字段值不是数字的值添加引号 Title 1,Title 2,Title 3,Title 4 1,a,08/01/07,å 2,b,08/02/07,∫ 3,c,08/03/07,ç有四种不同的引用选项在 csv 模块中被定义为常量。 QUOTE_ALL 无论什么类型的字段都会被引用。QUOTE_MINIMAL这是默认的选项使用指定的字符引用各字段如果解析器被配置为相同的 dialect 和选项时可能会让解析器在解析时产生混淆。QUOTE_NONNUMERIC引用那些不是整数或浮点数的字段。当使用读取对象时如果输入的字段是没有引号的那么它们会被转换成浮点数。QUOTE_NONE对所有的输出内容都不加引用当使用读取对象时引用字符看作是包含在每个字段的值里但在正常情况下它们被当成定界符而被去掉。 3.编码风格 其实没有一个标准定义这类逗号分隔值的文件所以解析器需要很灵活通过很多参数去控制如何解析 csv 或给其写入数据。但这并不是每个参数在写入或读取 csv 时分别传入而是统一分组为一个 编码风格 对象。 3.1.查看编码风格 Dialect 类可以通过名字注册因此 csv 模块调用它时不必预先知道相关的参数设置。所有注册过的编码风格列表可以通过 list_dialects() 方法查看。 import csvprint(csv.list_dialects())标准库提供了三种编码风格分别为 excel excel-tabs 和 unix。 excel 编码风格用来处理默认来自 Microsoft Excel 格式的数据的同样可用于处理来自 LibreOffice 格式的。 unix 编码风格将所有字段通过双引号引用并用 \n 做为每条记录的分隔符。 [excel, excel-tab, unix]3.2.创建一个编码风格 如果不使用逗号分隔字段输入文件使用竖杠 | 新建一个testdata.pipes文件复制下面内容到文件中作为测试数据。 Title 1|Title 2|Title 3 1|first line second line|08/18/07使用「竖杠」的编码风格可以像使用逗号一样读取文件 import csvcsv.register_dialect(pipes, delimiter|)with open(testdata.pipes, rt) as f:reader csv.reader(f, dialectpipes)for row in reader:print(row)运行结果 [Title 1, Title 2, Title 3] [1, first line\nsecond line, 08/18/07]3.3.编码风格参数 编码风格指定解析或写入数据文件时使用的所有标记。下表列出了可以设定的属性从字段的分隔方式到用于转义标记的字符。 属性默认含义delimiter,字段分隔符单字符doublequoteTrue控制 quotechar 实例是否翻倍escapecharNone用于表示转义序列的字符lineterminator\r\n写入时用来换行的字符quotechar引用含特殊值字段的字符一个字符quotingQUOTE_MINIMAL控制前面表述的引用行为skipinitialspaceFalse是否在字段分隔符后忽略空格 这段程序演示了当使用几种不同的编码风格格式化时相同的数据如何展示。 import csv import syscsv.register_dialect(escaped,escapechar\\,doublequoteFalse,quotingcsv.QUOTE_NONE,) csv.register_dialect(singlequote,quotechar,quotingcsv.QUOTE_ALL,)quoting_modes {getattr(csv, n): nfor n in dir(csv)if n.startswith(QUOTE_) }TEMPLATE \ Dialect: {name}delimiter {dl!r:6} skipinitialspace {si!r}doublequote {dq!r:6} quoting {qu}quotechar {qc!r:6} lineterminator {lt!r}escapechar {ec!r:6} for name in sorted(csv.list_dialects()):dialect csv.get_dialect(name)print(TEMPLATE.format(namename,dldialect.delimiter,sidialect.skipinitialspace,dqdialect.doublequote,ququoting_modes[dialect.quoting],qcdialect.quotechar,ltdialect.lineterminator,ecdialect.escapechar,))writer csv.writer(sys.stdout, dialectdialect)writer.writerow((col1, 1, 10/01/2010,Special chars: \ {} to parse.format(dialect.delimiter)))print()运行结果 Dialect: escapeddelimiter , skipinitialspace 0doublequote 0 quoting QUOTE_NONEquotechar lineterminator \r\nescapechar \\col1,1,10/01/2010,Special chars: \ \, to parseDialect: exceldelimiter , skipinitialspace 0doublequote 1 quoting QUOTE_MINIMALquotechar lineterminator \r\nescapechar Nonecol1,1,10/01/2010,Special chars: , to parseDialect: excel-tabdelimiter \t skipinitialspace 0doublequote 1 quoting QUOTE_MINIMALquotechar lineterminator \r\nescapechar Nonecol1 1 10/01/2010 Special chars: to parseDialect: singlequotedelimiter , skipinitialspace 0doublequote 1 quoting QUOTE_ALLquotechar lineterminator \r\nescapechar Nonecol1,1,10/01/2010,Special chars: , to parseDialect: unixdelimiter , skipinitialspace 0doublequote 1 quoting QUOTE_ALLquotechar lineterminator \nescapechar Nonecol1,1,10/01/2010,Special chars: , to parse3.4.自动检测编码风格 配置一个输入文件的编码风格的最好的办法是提前知道哪种编码风格是正确的。对于那些编码风格未知的参数 Sniffer 类可用于做有效的猜测。 sniff() 方法会获取输入数据的一个样本和一个可选参数给出可能的分隔符。 import csv from io import StringIO import textwrapcsv.register_dialect(escaped,escapechar\\,doublequoteFalse,quotingcsv.QUOTE_NONE) csv.register_dialect(singlequote,quotechar,quotingcsv.QUOTE_ALL)# 为所有已知的编码风格生成样本数据 samples [] for name in sorted(csv.list_dialects()):buffer StringIO()dialect csv.get_dialect(name)writer csv.writer(buffer, dialectdialect)writer.writerow((col1, 1, 10/01/2010,Special chars \ {} to parse.format(dialect.delimiter)))samples.append((name, dialect, buffer.getvalue()))# 猜测样本的编码风格然后用猜测结果来解析数据。 sniffer csv.Sniffer() for name, expected, sample in samples:print(Dialect: {}.format(name))print(In: {}.format(sample.rstrip()))dialect sniffer.sniff(sample, delimiters,\t)reader csv.reader(StringIO(sample), dialectdialect)print(Parsed:\n {}\n.format(\n .join(repr(r) for r in next(reader))))sniff() 方法返回一个包含了解析数据的参数的 Dialect 实例。结果并不一定是正确的例如这个例子中的「escaped」。 python3 csv_dialect_sniffer.pyDialect: escaped In: col1,1,10/01/2010,Special chars \ \, to parse Parsed:col1110/01/2010Special chars \\ \ \\ to parseDialect: excel In: col1,1,10/01/2010,Special chars , to parse Parsed:col1110/01/2010Special chars \ , to parseDialect: excel-tab In: col1 1 10/01/2010 Special chars to parse Parsed:col1110/01/2010Special chars \ \t to parseDialect: singlequote In: col1,1,10/01/2010,Special chars , to parse Parsed:col1110/01/2010Special chars \ , to parseDialect: unix In: col1,1,10/01/2010,Special chars , to parse Parsed:col1110/01/2010Special chars \ , to parse
http://www.dnsts.com.cn/news/236276.html

相关文章:

  • 廊坊企业网站服务wordpress响应式
  • 四川省建设厅官方网站电话电商运营怎么做的
  • 设计参考图网站南昌网站设计公司哪家好
  • 漳州微信网站开发中国英文政务网站建设
  • 福州专业网站建设服务商网站的英文
  • 深圳建网站兴田德润专业推广普通话ppt课件免费
  • 怎么自做网站微信网站开发视频教程
  • 网站一天要发多少外链wordpress外贸企业模板
  • 四秒网站建设在线制作logo设计
  • 网站维护难做wordpress文章底部文字广告
  • 做网站需要哪些素材网站弹出一张图怎么做代码
  • 做外贸大大小小的网站有哪些wordpress如何更改页面链接地址
  • 网站的建设心得WordPress安装界面打不开
  • 彩妆网站建设wordpress权限说明
  • 响应式网站的字体设置必须重视的问题之一
  • 唐山模板网站建设自己创建网站赚钱
  • 枣庄网站建设价格wordpress添加文字广告框架
  • 专门做签到的网站网页制作素材怎么分类
  • 大连网站建设培训黄浦做网站
  • 如何做网站页面免费的建设部门电工证查询网站
  • 高端工作网站泰安信息平台体温
  • 如何进入网站wifi扩展器做网站
  • 用python做的网站厦门房地产网站建设
  • 大型网站开发经典框架唐山做网站的公司
  • 网页制作与网站建设知识框架图上海企业建设网站价格
  • 旅游网站前台模板网站建设制作合同
  • 建行官方网站多少钱如何做不同域名跳转同一个网站
  • 资料库网站开发报价企业微信网站开发
  • 视频网站制作教程视频销售网站设计方案
  • wordpress栏目id顺序网站关键词排名优化技巧