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

本文介绍了Python中处理CSV文件的方法,包括csv模块的reader和writer对象,展示了如何读取和写入CSV数据,以及处理逗号分隔值的示例。
摘要由CSDN通过智能技术生成

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 importos11 importcsv12

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 most20 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 lines26 in the given csvfile.27 A short usage example:28 import csv29 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 the36 user's data into delimited strings on the given file-like37 object.38

39 A short usage example:40 import csv41 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 =True49 #csv file apth

50 CSV_FILE_PATH = ''

51

52 defwrite_data_2_csv_file(path, data):53 '''把数据写入到csv文件54 这里对要写入的数据进行限制,55 数据格式为一个列表:['one', 'two', 'three', 'four']56 '''

57 ifSHOW_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 ifSHOW_LOG:62 print('写入数据:{}'.format(data))63 writer.writerow(data)64

65 defwrite_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 ifSHOW_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 indatas:80 ifSHOW_LOG:81 print('写入数据:{}'.format(row))82 writer.writerow(row)83

84 defread_csv_file(path):85 '''读取指定的csv文件,并且把csv文件的内容以字符串的形式返回'''

86 ifos.path.exists(path):87 ifSHOW_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 inreader:94 ifSHOW_LOG:95 print('读取行:{}'.format(row))96 c = ','.join(row) +'\n'

97 content +=c98 return content[0:-1]99 exceptcsv.Errow as e:100 sys.exit('file {}, line {} : {}'.format(path, reader.line_num, e))101 else:102 print('不存在文件:[{}]'.format(path))103

104 defmkdirs(path):105 '''创建多级目录'''

106 ifos.path.exists(path):107 ifSHOW_LOG:108 print('The path [{}] existing!'.format(path))109 else:110 ifSHOW_LOG:111 print('The path [{}] dosen\'t exist!'.format(path))112 os.makedirs(path)113 ifSHOW_LOG:114 print('Created the path [{}]'.format(path))115

116 defget_path(absPath):117 '''获取到一个绝对路径的目录,118 如绝对路径:'C:\\test\\test.csv'119 则返回的是'C:\\test'120 '''

121 ifos.path.exists(absPath):122 ifSHOW_LOG:123 print('the path [{}] existing!'.format(absPath))124 returnos.path.split(absPath)[0]125 else:126 returnos.path.split(absPath)[0]127

128 definit():129 globalSHOW_LOG130 SHOW_LOG =True131 globalCSV_FILE_PATH132 CSV_FILE_PATH = 'C:\\test\\test.csv'

133 csv_dir =get_path(CSV_FILE_PATH)134 mkdirs(csv_dir)135

136 defmain():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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值