6-1 如何读写csv数据

>>> from urllib import urlretrieve
>>> urlretrieve(‘http://table.finance.yahoo.com/table.csv?s=000001.sz‘,r‘C:\视频\python高效实践技巧笔记\6数据编码与处理相关话题\pingan.csv‘,’pingan.csv’)

Urlretrieve模块第一个参数是url,第二个参数是要将打开的文件保存的文件。

对CSV文件读写使用CSV接口的reader()和writer()函数

因这个网址已经打不开了,所以在网上下载一个CSV文件直接操作

一、打开并读一个csv文件

>>> help(csv.reader)
Help on built-in function reader in module _csv:

reader(...)
    csv_reader = reader(iterable [, dialect=‘excel‘]
                            [optional keyword args])
        for row in csv_reader:
            process(row)

    The "iterable" argument can be any object that returns a line
    of input for each iteration, such as a file object or a list.  The
    optional "dialect" parameter is discussed below.  The function
    also accepts optional keyword arguments which override settings
    provided by the dialect.

    The returned object is an iterator.  Each iteration returns a row
of the CSV file (which can span multiple input lines).

help(csv.reader)

参数是一个打开文件的文件对象,返回的是一个迭代器。

>>> import csv
>>>
>>> rf = open(r"C:\视频\python高效实践技巧笔记\6数据编码与处理相关话题\bank-data.csv",‘rb‘)     #注意打开csv文件需要使用二进制打开方式
>>> reader = csv.reader(rf)
>>> reader.next()       #csv.reader()返回的是迭代器,查看需要使用next()方法
[‘id‘, ‘age‘, ‘sex‘, ‘region‘, ‘income‘, ‘married‘, ‘children‘, ‘car‘, ‘save_act‘, ‘current_act‘, ‘mortgage‘, ‘pep‘]
>>> reader.next()
[‘ID12101‘, ‘48‘, ‘FEMALE‘, ‘INNER_CITY‘, ‘17546.0‘, ‘NO‘, ‘1‘, ‘NO‘, ‘NO‘, ‘NO‘, ‘NO‘, ‘YES‘]

查看reader()返回迭代对象的方法

>>> help(reader)
Help on reader object:

class reader(__builtin__.object)
 |  CSV reader
 |
 |  Reader objects are responsible for reading and parsing tabular data
 |  in CSV format.
 |
 |  Methods defined here:
 |
 |  __iter__(...)
 |      x.__iter__() <==> iter(x)
 |
 |  next(...)
 |      x.next() -> the next value, or raise StopIteration
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  dialect
 |
 |  line_num

help(reader)

二、打开并写一个文件

>>> writer = csv.writer(wf)

>>> help(csv.writer)
Help on built-in function writer in module _csv:

writer(...)
    csv_writer = csv.writer(fileobj [, dialect=‘excel‘]
                                [optional keyword args])
        for row in sequence:
            csv_writer.writerow(row)

        [or]

        csv_writer = csv.writer(fileobj [, dialect=‘excel‘]
                                [optional keyword args])
        csv_writer.writerows(rows)

    The "fileobj" argument can be any object that supports the file API.

help(csv.writer)

同reader()一样,参数是一个打开文件的对象,返回值是一个迭代器,打开文件的方式 需要使用二进制方式

>>> wf = open(r‘C:\视频\python高效实践技巧笔记\6数据编码与处理相关话题\bank-databak.csv‘,‘wb‘)
>>> writer = csv.writer(wf)
>>> writer.writerow([‘id‘, ‘age‘, ‘sex‘, ‘region‘, ‘income‘, ‘married‘, ‘children‘, ‘car‘, ‘save_act‘, ‘current_act‘, ‘mortgage‘, ‘pep‘])
>>> writer.writerow(reader.next())
>>> writer.writerow(reader.next())
>>> wf.flush()         #和c语言的flush()作用相同,及时将文件缓冲区内容输出到文件上。

查看writer()返回的迭代器的方法主要是writerow()写行

>>> help(writer)
Help on writer object:

class writer(__builtin__.object)
 |  CSV writer
 |
 |  Writer objects are responsible for generating tabular data
 |  in CSV format from sequence input.
 |
 |  Methods defined here:
 |
 |  writerow(...)
 |      writerow(sequence)
 |
 |      Construct and write a CSV record from a sequence of fields.  Non-string
 |      elements will be converted to string.
 |
 |  writerows(...)
 |      writerows(sequence of sequences)
 |
 |      Construct and write a series of sequences to a csv file.  Non-string
 |      elements will be converted to string.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  dialect

help(writer)

Bank-data.csv是一份收入情况,现编写脚本,将文件中年龄在30-40之间,收入大于10000的另存到一个bank-databak.csv文件中.现编写脚本如下:

# -*- coding: cp936 -*-
import csv
with open(r‘C:\视频\python高效实践技巧笔记\6数据编码与处理相关话题\bank-data.csv‘,‘rb‘) as rf:
    reader = csv.reader(rf)
    with open(r‘C:\视频\python高效实践技巧笔记\6数据编码与处理相关话题\bank-databak.csv‘,‘wb‘) as wf:
        writer = csv.writer(wf)
        header = reader.next()    #将文件的头读出
        writer.writerow(header)   #将文件的头写入文件

        for row in reader:        #迭代执行判断,文件中第一个字段代表age第4个字段代表收入
#文件中读出的是字符,所以在比较时要将字符转成int或float.
#python中判断数字区间可以用数学中的表达方式,与C语言不同.
            if (30< int(row[1])<40 and float(row[4])>10000.0):
                writer.writerow(row)   #将合适的数据写入新的csv文件中
print("end")

结果:

Ps:

注意字符串日期的比较的大小比较也可以使用如下红框的方式,、

原文地址:https://www.cnblogs.com/smulngy/p/8949795.html

时间: 2024-11-09 17:06:49

6-1 如何读写csv数据的相关文章

python_如何读写csv数据

案例: 通过股票网站,我们获取了中国股市数据集,它以csv数据格式存储 Data,Open,High,Low,Close,Volume,Adj Close 2016-06-28,8.63,8.47,8.66,8.70,500000,8.70 2016-06-28,8.63,8.47,8.66,8.70,500000,8.70 2016-06-28,8.63,8.47,8.66,8.70,500000,8.70 ...... 需求:请将2016年成交量超过500000记录存储到另外一个csv文件中

读写csv,excel文件数据

一.读写csv数据 import csv '''读csv数据''' rf = open('csvName.csv', 'rb') reader = csv.reader(rf) '''写csv数据''' d = ['Id', 'Name', 'Sex', 'age', 'score'] wf = open('csvName1.csv', 'wb') writer = csv.writer(wf) writer.writerow(d) for r in reader: writer.writero

如何用python读写CSV 格式文件

工作中经常会碰到读写CSV文件的情况.记录下,方便自己以后查询并与大家一起分享: 写CSV文件方法一: import csv          #导入CSV with open("D:\egg.csv","wb") as csvfile       #新建一个叫egg.csv"的文件在D盘. a=csv.writer(csvfile)                                    #以CSV的格式 写数据到文件CSVFILE中. a

python3使用csv模块读写csv文件

python3使用csv模块读写csv文件 读取csv文件: import csv #打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open() with open("XXX.csv","r",encoding="utf-8") as csvfile: #读取csv文件,返回的是迭代类型 read = csv.reader(csvfile) for i in read: print(i) 存

MATLAB中文件的读写和数据的导入导出

http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出. 13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存.导入和文件打开.13.1.1 文件的存储 MATLAB支持工作区的保存.用户可以将工作区或工作区中的变量以文件的形式保

Python读写CSV

简单记录下,关于这两种文件的读写: 读写csv: import csv #读取数据 def getCsv(filename="xxxxxxxx"): rows=[] with open(filename,'rb') as f: readers=csv.reader(f,delimiter=',',quotechar='|') next(readers,None) for row in readers: rows.append(row) print rows #写入数据 def writ

支持各种特殊字符的 CSV 解析类 (.net 实现)(C#读写CSV文件)

CSV是一种十分简洁的数据结构,在DOTNET平台实际使用中发现微软官方并没有提供默认的方法,而网上好多例子发现实现并不严谨甚至一些含有明显错误,所以后面自己实现了一个读写工具类,这里发出来希望方便后面朋友(难免还是会有考虑不到的地方,可随时邮件联系) 使用该工具可对csv文件进行读写(甚至不用去了解CSV的各种规范) 直接以List<List<string>> 形式输出,方便进一步处理 因为工具类需要读取文件资源读取完毕后如果确认不会再次读取,建议立即Dispose,以释放文件句

java读写CSV文件

java读写CSV文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 读取csv文件中数据 将数据保存为csv文件格式 读取CSV文件中的数据 import java.io.*; import java.util.ArrayList; import java.util.StringTokenizer; public class readCSV { void readCSV(String readpath, ArrayList Nolist, ArrayList Dnalist

如何通过 JavaCSV 类库来优雅地(偷懒)读写 CSV 文件?

欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! 个人博客: https://www.exception.site/essay/how-to-create-read-csv-by-javacsv 一.背景 小哈公司最近准备开发一套新的平台,具体什么平台,因为涉密,这里就不透露了.平台在最终的的技术选型中,其中主要依赖的技术栈是 Apache Flink, 一款 Apache 基金会开源的流处理框架,平台的核心业务都会交给 Flink 去处理,其中包括离线批量任