python开发_csv(Comma Separated Values)_逗号分隔值_常用导入导出格式_完整版_博主推荐...

本文主要是介绍python开发_csv(Comma Separated Values)_逗号分隔值_常用导入导出格式_完整版_博主推荐...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#
# 最近出了一趟差,是从20号去的,今天回来...
# 就把最近学习的python内容给大家分享一下...
#
'''
在python中,CSV(Comma Separated Values),从字面上面理解为:逗号分隔值举个例子,如:test_csv = 'one, two, three, 4, 5'对于test_csv这个变量来说,他里面就存放着这样的值:逗号分隔的值。这样的形式在导入和导出中非常常见,如python(version:3.3.2)的API中所描述的一样:The so-called CSV(Comma Separated Values) format is the mostcommon import and export for spreadsheets and databases.csv模块定义了以下函数:csv.reader(csvfile, dialect = 'excel', **fmtparams)Retuen a reader object which will iterate over linesin the given csvfile.A short usage example:import csvwith open('eggs.csv', newline = '') as cf:spamreader = csv.reader(cf, delimiter = ' ', quotechar = '|')for row in spamreader:print(','.join(row))csv.write(csvfile, dialect = 'excel', **fmtparams)Return a writer object reaponsible for converting theuser's data into delimited strings on the given file-likeobject.A short usage example:import csvwith open('eggs.csv', 'w', newline = '') as cf:spamwrite = csv.writer(cf, delimiter = ' ', quotechar = '|', quoting = csv.QUOTE_MINIMAL)spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) '''

一下是我做的demo:

运行效果:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
The path [C:\test] dosen't exist!
Created the path [C:\test]
打开文件:[C:\test\test.csv]
写入数据:['one', 'two', 'three', 'four']
打开文件:[C:\test\test.csv]
读取行:['one,two,three,four']
one,two,three,four
##################################################
打开文件:[C:\test\test.csv]
写入数据:['one', 'two', 'three', 'four']
写入数据:['1', '2', '3']
写入数据:['a', 'b', 'c', 'd']
写入数据:['中国', '美国', '日本', '韩国', '新加坡']
打开文件:[C:\test\test.csv]
读取行:['one,two,three,four']
读取行:['1,2,3']
读取行:['a,b,c,d']
读取行:['中国,美国,日本,韩国,新加坡']
one,two,three,four
1,2,3
a,b,c,d
中国,美国,日本,韩国,新加坡
>>> 

C:\\test目录下面的情况:

====================================================

代码部分:

====================================================

  1 #python csv
  2 
  3 #Author : Hongten
  4 #MailTo : hongtenzone@foxmail.com
  5 #QQ     : 648719819
  6 #Blog   : http://www.cnblogs.com/hongten
  7 #Create : 2013-08-21
  8 #Version: 1.0
  9 
 10 import os
 11 import csv
 12 
 13 '''
 14     在python中,CSV(Comma Separated Values),从字面上面理解为:逗号分隔值
 15     举个例子,如:test_csv = 'one, two, three, 4, 5'
 16     对于test_csv这个变量来说,他里面就存放着这样的值:逗号分隔的值。这样的形式
 17     在导入和导出中非常常见,如python(version:3.3.2)的API中所描述的一样:
 18 
 19         The so-called CSV(Comma Separated Values) format is the most
 20         common import and export for spreadsheets and databases.
 21 
 22     csv模块定义了以下函数:
 23 
 24         csv.reader(csvfile, dialect = 'excel', **fmtparams)
 25             Retuen a reader object which will iterate over lines
 26             in the given csvfile.
 27     A short usage example:
 28         import csv
 29         with open('eggs.csv', newline = '') as cf:
 30             spamreader = csv.reader(cf, delimiter = ' ',  quotechar = '|')
 31             for row in spamreader:
 32                 print(','.join(row))
 33 
 34         csv.write(csvfile, dialect = 'excel', **fmtparams)
 35             Return a writer object reaponsible for converting the
 36             user's data into delimited strings on the given file-like
 37             object.
 38 
 39     A short usage example:
 40         import csv
 41         with open('eggs.csv', 'w', newline = '') as cf:
 42             spamwrite = csv.writer(cf, delimiter = ' ', quotechar = '|', quoting = csv.QUOTE_MINIMAL)
 43             spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
 44             spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
 45 '''
 46 
 47 #global var
 48 SHOW_LOG = True
 49 #csv file apth
 50 CSV_FILE_PATH = ''
 51 
 52 def write_data_2_csv_file(path, data):
 53     '''把数据写入到csv文件
 54     这里对要写入的数据进行限制,
 55     数据格式为一个列表:['one', 'two', 'three', 'four']
 56     '''
 57     if SHOW_LOG:
 58         print('打开文件:[{}]'.format(path))
 59     with open(path, 'w', newline = '') as cf:
 60         writer = csv.writer(cf, delimiter = ',', quotechar = '|', quoting = csv.QUOTE_MINIMAL)
 61         if SHOW_LOG:
 62             print('写入数据:{}'.format(data))
 63         writer.writerow(data)
 64     
 65 def write_datas_2_csv_file(path, datas):
 66     '''把数据写入到csv文件
 67     这里对要写入的数据进行限制,
 68     数据格式为一个列表,列表里面的每一个元素都是一个列表:
 69     [
 70     ['one', 'two', 'three', 'four'],
 71     ['1', '2', '3'],
 72     ['a', 'b', 'c', 'd']
 73     ]
 74     '''
 75     if SHOW_LOG:
 76         print('打开文件:[{}]'.format(path))
 77     with open(path, 'w', newline = '') as cf:
 78         writer = csv.writer(cf, delimiter = ',', quotechar = '|', quoting = csv.QUOTE_MINIMAL)
 79         for row in datas:
 80             if SHOW_LOG:
 81                 print('写入数据:{}'.format(row))
 82             writer.writerow(row)
 83 
 84 def read_csv_file(path):
 85     '''读取指定的csv文件,并且把csv文件的内容以字符串的形式返回'''
 86     if os.path.exists(path):
 87         if SHOW_LOG:
 88             print('打开文件:[{}]'.format(path))
 89         content = ''
 90         with open(path, newline = '') as cf:
 91             reader = csv.reader(cf, delimiter = ' ', quotechar = '|')
 92             try:
 93                 for row in reader:
 94                     if SHOW_LOG:
 95                         print('读取行:{}'.format(row))
 96                     c = ','.join(row) +'\n'
 97                     content += c
 98                 return content[0:-1]
 99             except csv.Errow as e:
100                 sys.exit('file {}, line {} : {}'.format(path, reader.line_num, e))
101     else:
102         print('不存在文件:[{}]'.format(path))
103                 
104 def mkdirs(path):
105     '''创建多级目录'''
106     if os.path.exists(path):
107         if SHOW_LOG:
108             print('The path [{}] existing!'.format(path))
109     else:
110         if SHOW_LOG:
111             print('The path [{}] dosen\'t exist!'.format(path))
112         os.makedirs(path)
113         if SHOW_LOG:
114             print('Created the path [{}]'.format(path))
115 
116 def get_path(absPath):
117     '''获取到一个绝对路径的目录,
118     如绝对路径:'C:\\test\\test.csv'
119     则返回的是'C:\\test'
120     '''
121     if os.path.exists(absPath):
122         if SHOW_LOG:
123             print('the path [{}] existing!'.format(absPath))
124         return os.path.split(absPath)[0]
125     else:
126         return os.path.split(absPath)[0]
127 
128 def init():
129     global SHOW_LOG
130     SHOW_LOG = True
131     global CSV_FILE_PATH
132     CSV_FILE_PATH = 'C:\\test\\test.csv'
133     csv_dir = get_path(CSV_FILE_PATH)
134     mkdirs(csv_dir)
135         
136 def main():
137     init()
138     data = ['one', 'two', 'three', 'four']
139     datas = [
140     ['one', 'two', 'three', 'four'],
141     ['1', '2', '3'],
142     ['a', 'b', 'c', 'd'],
143     ['中国', '美国', '日本', '韩国', '新加坡']
144     ]
145     write_data_2_csv_file(CSV_FILE_PATH, data)
146     content = read_csv_file(CSV_FILE_PATH)
147     print(content)
148     print('#' * 50)
149     write_datas_2_csv_file(CSV_FILE_PATH,  datas)
150     content = read_csv_file(CSV_FILE_PATH)
151     print(content)
152 
153     
154 if __name__ == '__main__':
155     main()

 

转载于:https://www.cnblogs.com/hongten/p/hongten_python_csv.html

这篇关于python开发_csv(Comma Separated Values)_逗号分隔值_常用导入导出格式_完整版_博主推荐...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291614

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1