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

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优