python写csv文件分隔符问题,python读取csv文件去掉逗号

  python写csv文件分隔符问题,python读取csv文件去掉逗号

  默认情况下,CSV文件使用英文逗号作为列分隔符,换行符作为行分隔符。下面这篇文章主要介绍Python中关于CSV文件(逗号分割)的相关信息,通过示例代码非常详细的介绍。有需要的朋友可以参考一下。

  00-1010I。csv文件介绍1、csv文件介绍2、为什么使用csv文件2、查看csv文件1、创建测试文件2、查看csv文件(列表)3、查看csv文件(字典)4、写文件(列表)5、写文件(字典)总结。

  

目录

  

一、csv文件介绍

  逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。

  

1、csv文件简介

  在Linux中我们可以通过命令在数据库中把表导出来为csv结尾的文件,其实就是以逗号分割分txt文件,此文件我们可以在windows中打开并且为表格的形式,方便我们进行查看与再次操作。

  eg:

  Maria db[test]select * from table name into outfile /tmp/test . CSV 字段以,结尾。

  

2、为什么要使用csv文件

  注意:这里我是把csv文件和python代码都放在同级目录,否则要指定路径!!!

  

二、csv文件查看

  (1)这里我们用windows中的csv文件做实验。

  (2)我们可以选择将内容复制进来或上传到linux,这里我们选择前者。

  [root @ python _ test]# vim test . CSV # # #可以发现在副本中空格被用作分隔符。

  id用户名密码年龄

  1梦想1 123 21

  2梦想2 456 22

  3梦想3 789 23

  # # #用逗号替换空格

  [root @ python _ test]# sed-I s/\ s \/,/g test.csv

  

1、测试文件创建

  (1)读出结果

  [root@python _test]# vim _test.py

  #!/usr/bin/env python

  #编码:utf-8

  导入csv

  用open(test.csv ,encoding=utf-8 )作为f:

  reader=csv.reader(f)

  打印(阅读器)

  打印(列表(阅读器))

  # # #查看结果

  [root @ python _ test]# python _ test . py

  _csv.reader对象位于0x7f54d9a01eb8

  [[id ,用户名,密码,年龄],[1 ,梦想1 , 123 , 21],[2 ,梦想2 , 456 , 22],[3 ,梦想3 , 789 , 23]]

  (2)导线(

  从第一行读取)

  

[root@python _test]# vim _test.py 

  #!/usr/bin/env python

  #coding:utf-8

  import csv

  with open(test.csv, encoding="utf-8") as f:

   reader = csv.reader(f)

   for i in reader:

   print(reader.line_num, i)

   ### 查看结果

  [root@python _test]# python _test.py

  1 [id, username, passwd, age]

  2 [1, dream1, 123, 21]

  3 [2, dream2, 456, 22]

  4 [3, dream3, 789, 23]

  

  (2)遍历(从第二行读取)

  

[root@python _test]# vim _test.py

  #!/usr/bin/env python

  #coding:utf-8

  import csv

  with open(test.csv, encoding="utf-8") as f:

   reader = csv.reader(f)

   ### 这个就是我们得表头

   next(reader)

   for i in reader:

   print(reader.line_num, i)

  ### 查看结果

  [root@python _test]# python _test.py

  2 [1, dream1, 123, 21]

  3 [2, dream2, 456, 22]

  4 [3, dream3, 789, 23]

  

  

  

3、查看csv文件(字典)

  (1)查看

  

[root@python _test]# vim _test.py

  #!/usr/bin/env python

  #coding:utf-8

  import csv

  with open(test.csv, encoding="utf-8") as f:

   reader = csv.DictReader(f)

   ### 表头

   print (reader.fieldnames)

   print (reader,type(reader))

   for i in reader:

   print (i)

  ### 查看结果

  [root@python _test]# python _test.py

  [id, username, passwd, age]

  <csv.DictReader object at 0x7f3b02213a20> <class csv.DictReader>

  OrderedDict([(id, 1), (username, dream1), (passwd, 123), (age, 21)])

  OrderedDict([(id, 2), (username, dream2), (passwd, 456), (age, 22)])

  OrderedDict([(id, 3), (username, dream3), (passwd, 789), (age, 23)])

  

  (2)查看第一列(id)

  

优点:我们不知道表头在具体那列,我们可以通过表头名来获取整列数据,即我们可以随便调整顺序也不会影响我们的数据读取!!!

  

  

[root@python _test]# vim _test.py

  #!/usr/bin/env python

  #coding:utf-8

  import csv

  with open(test.csv, encoding="utf-8") as f:

   reader = csv.DictReader(f)

   for i in reader:

   print (i[id])

  ### 查看结果

  [root@python _test]# python _test.py

  1

  2

  3

  

  

  

4、写入文件(列表)

  

[root@python _test]# vim _test.py

  #!/usr/bin/env python

  #coding:utf-8

  import csv

  li = [["id","user","性别"],["1","dreamya1","男"],["2","dreamya2","女"]]

  with open(user.csv, w, newline=) as f:

   writer = csv.writer(f)

   for i in li:

   writer.writerow(i)

  ### 查看结果

  [root@python _test]# python _test.py

  [root@python _test]# cat user.csv

  id,user,性别

  1,dreamya1,男

  2,dreamya2,女

  

  下载到windows中查看:

  

[root@python _test]# sz user.csv 

  

  

  

  

5、写入文件(字典)

  

[root@python _test]# vim _test.py

  import csv

  #coding:utf-8

  headers = [id, username,passwd]

  li = [{id:1,username:dream1,passwd:123},

   {id:2,username:dream2,passwd:456},

   ]

  with open(user.csv, w, newline=) as f:

   ### 表头传入

   writer = csv.DictWriter(f, headers)

   writer.writeheader()

   ### 一行一行写入

   for i in li:

   writer.writerow(i)

   ### 直接把li写入(多行)

   writer.writerows(li)

  ### 查看结果

  [root@python _test]# python _test.py

  [root@python _test]# cat user.csv

  id,username,passwd

  1,dream1,123

  2,dream2,456

  1,dream1,123

  2,dream2,456

  

  windows中查看:

  

[root@python _test]# sz user.csv 

  

  

  

  

总结

  到此这篇关于Python中CSV文件(逗号分割)的文章就介绍到这了,更多相关PythonCSV文件逗号分割内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: