Python基础教程在SublimeEditor中配置Python环境给Python代码添加注释使用Python数据类型Python关键字Python字符串操作Python中的列表操作Python中的元组操作Pythonmax()和min()——查找列表或数组中的最大值和最小值Python查找最大N(topN)或最小N项Python读写CSV文档Python中使用httplib2——HTTPGET和POST示例PythonPythonUnboxingTuplesasVariablesorParametersPythonUnboxingTuple–TooManyValuestoUnpackPythonMultidictExample–MappingaSingleKeytoMultipleValuesinaDictionaryIntersection–CompareTwoDictionariesPythonPriorityQueue例子学习在Python中使用CSV文件。CSV(逗号分隔值)格式是电子表格和数据库中非常流行的导入和导出格式。Python语言包含此模块,其中包含用于读取和写入CSV格式数据的类。[](https://www.python.org/)csv目录使用csv.reader()读取CSV文件使用csv.DictReader读取CSV文件使用csv.writer()写入CSV文件参考CSV方言CustomCSVDialect读取CSV文件使用csv.reader()csv.reader()方法返回一个读取器对象,该对象将遍历给定CSV文件中的行。假设我们有以下包含数字的numbers.csv文件:6,5,3,9,8,6,7下面的python脚本从这个CSV文件中读取数据。#!/usr/bin/python3importcsvf=open('numbers.csv','r')withf:reader=csv.reader(f)forrowinreader:print(row)在上面的代码示例中,我们打开了numbers.csv用于使用csv.reader()方法读取和加载数据。现在,假设CSV文件将使用不同的分隔符。(严格来说,这不是CSV文件,但这种做法很常见。)例如,我们有以下items.csv文件,其中元素由竖线字符(|)分隔:pen|table|keyboard以下脚本从items.csv文件中读取数据。#!/usr/bin/python3importcsvf=open('items.csv','r')withf:reader=csv.reader(f,delimiter="|")forrowinreader:foreinrow:print(e)我们的分隔符使用csv.reader()方法中的参数来指定新的分隔符。使用csv.DictReader读取CSV文件csv.DictReader类的操作就像普通阅读器一样,但将信息读入字典映射中。字典的键可以通过fieldnames参数传递,也可以从CSV文件的第一行推断出来。我们有以下values.csv文件:min,avg,max1,5.5,10第一行代表字典的键,第二行代表值。#!/usr/bin/python3importcsvf=open('values.csv','r')withf:reader=csv.DictReader(f)forrowinreader:print(row)上面的python脚本使用读取值Value.csv文件中的csv.DictReader。这是示例输出。$./read_csv3.py{'max':'10','min':'1','avg':'5.5'}使用csv.writer()写入CSV文件csv.writer()方法返回一个writer负责将用户数据转换为给定类文件对象上的分隔字符串的对象。#!/usr/bin/python3importcsvnms=[[1,2,3,4,5,6],[7,8,9,10,11,12]]f=open('numbers2.csv','w')withf:writer=csv.writer(f)forrowinnms:writer.writerow(row)此脚本将数字写入numbers2.csv文件。writerow()方法将一行数据写入指定文件。该脚本将生成以下文件(numbers2.csv):1,2,3,4,5,67,8,9,10,11,12可以一次写入所有数据。writerows()方法将所有给定的行写入CSV文件。下一个代码示例将Python列表写入numbers3.csv文件。该脚本将三行数字写入文件。#!/usr/bin/python3importcsvnms=[[1,2,3],[7,8,9],[10,11,12]]f=open('numbers3.csv','w')withf:writer=csv.writer(f)writer.writerows(nms)运行上述程序时,会向numbers3.csv文件写入如下输出:1,2,37,8,910,11,12引用即可在CSV文件中引用单词。PythonCSV模块中有四种不同的引用模式:QUOTE_ALL—引用所有字段QUOTE_MINIMAL—仅引用那些包含特殊字符的字段QUOTE_NONNUMERIC—引用所有非数字字段QUOTE_NONE—不引用字段写三行。所有非数字字段都用引号引起来。#!/usr/bin/python3importcsvf=open('items2.csv','w')withf:writer=csv.writer(f,quoting=csv.QUOTE_NONNUMERIC)writer.writerows((["硬币",3],["pens",2],["bottles",7]))该程序将创建以下items2.csv文件。引用项目名称,而不是数字数量。“coins”,3个“pen”,2个“bottles”,7个CSVDialectsCSV格式虽然是一种很简单的格式,但还是有很多不同之处,比如不同的分隔符、换行符或引号字符。因此,有不同的CSV方言可用。下一个代码示例将打印可用的方言及其特征。#!/usr/bin/python3importcsvnames=csv.list_dialects()fornameinnames:print(name)dialect=csv.get_dialect(name)print(repr(dialect.delimiter),end="")print(dialect.双引号,end="")print(dialect.escapechar,end="")print(repr(dialect.lineterminator),end="")print(dialect.quotechar,end="")print(dialect.quoting,end="")print(dialect.skipinitialspace,end="")print(dialect.strict)其中csv.list_dialects()返回方言名称列表,csv.get_dialect()方法返回与方言名称关联的方言。$./dialects.pyexcel','1无'\r\n'"000excel-tab'\t'1无'\r\n'"000unix','1无'\n'"100程序将打印此输出。内置三种方言excel、excel-tab和unix。自定义CSV方言在本教程的最后一个示例中,我们将创建自定义方言。使用csv.register_dialect()方法创建自定义方言。#!/usr/bin/python3importcsvcsv.register_dialect("hashes",delimiter="#")f=open('items3.csv','w')withf:writer=csv.writer(f,dialect="hashes")writer.writerow(("pencils",2))writer.writerow(("plates",1))writer.writerow(("books",4))此程序使用(#)字符作为分隔符.使用csv.writer()方法中的dialect选项指定方言。该程序将生成以下文件(items3.csv):pencils#2plates#1books#4在本教程中,我们探索了Pythoncsv模块并介绍了一些在python中读取和写入CSV文件的示例。快乐学习!作者:分布式编程来源:https://zthinker.com/如果您喜欢本文,请长按二维码关注分布式编程。
