Python CSV 文件解析和生成方法示例

目录
  • 思路
  • Python with CSV
  • CSV 格式
  • 使用 Python 的 csv 库
  • 其他

思路

  • 简单的生成和读取 CSV
  • CSV 文件格式
  • 使用 csv 库

Python with CSV

先有个很朴素的生成和解析的方法。

生成:

data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]
for cow in data:
    print(','.join(map(str, cow)))

生成结果:

1,2,3
4,5,6
7,8,9

解析

s = """1,2,3
4,5,6
7,8,9
"""
cows = s.splitlines()
data = []
for cow in cows:
    items = cow.split(',')
    data.append(items)
# data
# [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

但是显示的数据可能不这么理想,比如其中的某一项有 , 的时候就会有问题了。

CSV 格式

CSV 中有几个概念需要先了解下。CSV 虽然是 Comma-separated values 但并不一定用逗号来分隔,也可以用其他的来分隔。同时 CSV 也没有一个明确的规范。

从 Python 的 csv 的文档中看到的一些关键术语:

delimiter,最基本的分隔符

quotechar,如果某个 item 中包含了分隔符,应该用 quotechar 把它包裹起来

doublequote,如果某个 item 中出现了 quotechar 那么可以把整个内容用 quotechar 包裹,并把 quotechar double 一下用来做区分

escapechar,如果不用 doublequote 的方法还可以用 escapechar 来辅助

lineterminator,每一行的结束符,默认的是 \r\n

quoting,可以选择任何时候都使用 quotechar 来包裹内容,或者是需要用到的时候再用,或者不用

skipinitialspace,是否忽略分隔符后面跟着的空格

strict,这个是 Python 自己的,是否抛要异常

(上面的可能没有覆盖所有的细节,但大概就是这样的情况)

使用 Python 的 csv 库

13.1. csv — CSV File Reading and Writing — Python 2.7.12 documentation

很简单的例子就是

import csv
with open('some.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
import csv
with open('some.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(someiterable)

另外这里面有个 dialect 的概念,就是用一个 dialect 来定义上面提到的那些解析规则。

可以自己注册(csv.register_dialect )、列出所有的(csv.list_dialects)、获取某个(csv.get_dialect)。

默认是用逗号分隔的 excel 的 dialect,所以如果没有特殊情况应该直接使用默认值就够了。

其他

这次先只把基本概念了解下,后面可能还有文件编码之类的坑,到时遇到了再回来更新。

参考

PEP 305 -- CSV File API | Python.org

13.1. csv — CSV File Reading and Writing — Python 2.7.12 documentation

以上就是Python CSV 文件解析和生成方法示例的详细内容,更多关于Python CSV文件解析生成的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python csv文件记录流程代码解析

    1.合并所有测试集和训练集的文件: 使用cmd到所在盘下,输入copy *.CSV all_***.csv即可 2.单独提取异常数据列作为csv文件: import csv import codecs #coding:utf-8 with open("G:\\data_release\\train1.0\\all_train.csv","rt",encoding="utf-8")as f: reader=csv.DictReader(f) col

  • python 如何读、写、解析CSV文件

    您知道将表格数据存储到纯文本文件背后的机制是什么吗?答案是CSV(逗号分隔值)文件,该文件允许将数据转换为纯文本格式.在这篇文章中关于"在Python如何阅读CSV文件"中,我们将学习如何读,写和解析的CSV文件的Python. 将详细讨论以下方面: 什么是CSV文件及其用途? 为什么使用CSV文件格式? Python CSV模块 CSV模块功能 在Python中执行写入,读取CSV文件的操作 让我们开始吧. 什么是CSV文件及其用途? CSV(逗号分隔值)是一种纯文本文件格式,用于存

  • Python全面解析json数据并保存为csv文件

    目录 解析json数据并保存为csv文件 完整代码 将json任意行文件转为csv文件并保存 将json格式的前3000条数据存入csv 解析json数据并保存为csv文件 首先导入两个包: import json import pandas as pd 打开json 文件并读取: with open('2.json', encoding='utf-8') as f:     line = f.readline()     d = json.loads(line)     f.close() 读

  • Python3操作读写CSV文件使用包过程解析

    CSV(Comma-Separated Values)即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型(注意:数字为字符串类型). 如果CSV中有中文,应以utf-8编码读写,如果要支持Excel查看,应是要用utf-8 with bom格式及utf-8-sig Python3操作CSV文件使用自带的csv包 reader=csv.reader(f, delimiter=','):用来读取数据,reader为生成器,每次读取一行,每行数据为列表格式,可以通过delimi

  • Python读取csv文件实例解析

    这篇文章主要介绍了Python读取csv文件实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建一个csv文件,命名为data.csv,文本内容如下: root,123456,login successfully root,wrong,wrong password wrong,123456,nonexistent username ,123456,username is null root,,password is null 使用Exc

  • Python CSV 文件解析和生成方法示例

    目录 思路 Python with CSV CSV 格式 使用 Python 的 csv 库 其他 思路 简单的生成和读取 CSV CSV 文件格式 使用 csv 库 Python with CSV 先有个很朴素的生成和解析的方法. 生成: data = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] for cow in data: print(','.join(map(str, cow))) 生成结果: 1,2,34,5,67,8,9 解析 s = ""&

  • Python利用BeautifulSoup解析Html的方法示例

    介绍 Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序. Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码.你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了.然后,你仅仅需要说明一下原始编码方式就可以了. Beautiful

  • Python 3.x读写csv文件中数字的方法示例

    前言 本文主要给大家介绍了关于Python3.x读写csv文件中数字的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 读写csv文件 读文件时先产生str的列表,把最后的换行符删掉:然后一个个str转换成int ## 读写csv文件 csv_file = 'datas.csv' csv = open(csv_file,'w') for i in range(1,20): csv.write(str(i) + ',') if i % 10 == 0: csv.write

  • Python跨文件全局变量的实现方法示例

    前言 在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如: int a = 5; void test(void) { a = 1; // 没有先声明,所以用的是全局的变量a } void test1(void) { int a; a = 2; // 前面声明了,所以用的是局部变量a,对其所做的修改不会影响全局变量a } void main(void) { printf("before: a = %d\n", a); test(); pr

  • java生成csv文件乱码的解决方法示例 java导出csv乱码

    复制代码 代码如下: import java.io.File;import java.io.IOException;import java.util.List; import com.google.common.base.Charsets;import com.google.common.base.Joiner;import com.google.common.base.Preconditions;import com.google.common.collect.Lists;import com

  • python 提取文件指定列的方法示例

    之前用featureCount 处理得到结果,要提出第一列gene_id 和 readcount 列,首先软件输出的第一行默认是你使用的命令行,没有用,用bash批量删掉. for i in `ls`;do sed -i '1d' $i;done 删除当前文件夹下所有文件第一行. 其实提出两列很简单,不过我受够了每次一个文件执行一次的烦.想搞成别的程序调用时命令行参数直接就行.第一次知道sys.argv这玩意,学到了. 我设置了 -i 输入,-o 输出 这两个参数来判断输入输出文件个数,不过对于

  • Python实现检测文件MD5值的方法示例

    本文实例讲述了Python实现检测文件MD5值的方法.分享给大家供大家参考,具体如下: 前面介绍过Python计算文件md5值的方法,这里分析一下Python检测文件MD5值的另一种实现方法. 概述: MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. 实现代码: #python 检测文件MD5值 #python version 2.6 import hashlib im

  • Python简单计算文件MD5值的方法示例

    本文实例讲述了Python简单计算文件MD5值的方法.分享给大家供大家参考,具体如下: 一 代码 import sys import hashlib import os.path filename = sys.argv[1] if os.path.isfile(filename): fp=open(filename,'rb') contents=fp.read() fp.close() print(hashlib.md5(contents).hexdigest()) else: print('f

  • python中csv文件的若干读写方法小结

    如下所示: //用普通文本文件方式打开和操作 with open("'file.csv'") as cf: lines=cf.readlines() ...... //用普通文本方式打开,用csv模块操作 import csv with open("file.csv") as cf: lines=csv.reader(cf) for line in lines: print(line) ...... import csv headers=['id','usernam

  • Python Pandas批量读取csv文件到dataframe的方法

    PYTHON Pandas批量读取csv文件到DATAFRAME 首先使用glob.glob获得文件路径.然后定义一个列表,读取文件后再使用concat合并读取到的数据. #读取数据 import pandas as pd import numpy as np import glob,os path=r'e:\tj\month\fx1806' file=glob.glob(os.path.join(path, "zq*.xls")) print(file) dl= [] for f i

随机推荐