Python基础(七)- 数据处理

读取文本文件

infile=open(filename,’r’)

创建一个程序和文件的连接,其能够让程序从文件中读取数据。文件称作为了读取而打开,或为了输入而打开。open函数返回一个文件对象。
变量infile被用于从文件中读取行以及最终中断和文件的连接。在文件为读取而被打开后,一个具有如下头部的for循环

  for line in infile 

用来连续访问文件中的语句。

listVar=[line.rstrip() for line in infile]

生成一个字符串列表,其中列表的每一项是文件中一行减去一个换行符。
注意:只使用for循环,换行符会出现在每一行的结尾(可能除了最后一行外)
任何时候,从程序到文件的连接都可以使用如下语句终止。

infile.close()

当打开文件的函数结束时,文件通常会被自动关闭。然而,当我们不再使用一个文件时,我们要明确的关闭它。

def main():
    file='ww.txt'
    displayWithForLoop(file)
    print()
    displayWithListComprehension(file)

def displayWithForLoop(file):
    infile=open(file,'r')
    for line in infile:
        print   (line,end='')
    infile.close()

def displayWithListComprehension(file):
    infile=open(file,'r')
    listVar=[line.rstrip() for line in infile]
    infile.close()
    print(listVar)
main()

这里写图片描述

一个为了读取而被打开的文件也能使用read和readline方法访问。

def main():
    file='ww.txt'
    displayWithForLoop(file)
    print()
    displayWithListComprehension(file)

def displayWithForLoop(file):
    infile=open(file,'r')
    line=infile.readline()
    while line!='':
        print(line,end='')
        line=infile.readline()
    infile.close()

def displayWithListComprehension(file):
    infile=open(file,'r')
    listVar=[line.rstrip() for line in infile]
    infile.close()
    print(listVar)
main()

创建文本文件

outfile=open(filename.’w’)

使用指定的名字创建一个新的文本文件。这个文件被指定成为了写入而打开。
变量outline用来向文件中写入行,并且用来在最后关闭文件。如果list1代表一个字符串的列表,其中每一个字符串都以换行符结尾。下面这个语句:

outfile.writelines(list1)

将列表中的每一个元素作为一行写入文件中。如果strVar的值是一个字符串,那么语句
outfile.write(strVar)会将strVar的值追加到文件中。
由于内存的访问速度远远快于磁盘的访问速度,Python分配了一块叫做缓冲区的内存空间,用来临时保存将要写进磁盘的数据。一旦缓冲区满了,或者文件被关闭了,缓冲区里的内容就会被写入磁盘。所以,执行write和writelines语句之后,必须关闭文件,以确保所有数据在物理层面上传输到了磁盘中。

向已有的文本文件中添加行

outfile=open(fileName,’a’)

允许一个程序向指定的文件末尾追添行。随后writelines和write方法可以用来添加新的行。这个文件称为为了添加而打开。(opened for append)

def main():
    outfile=open('ww.txt','a')
    list1=['dan\n','enheng\n']
    outfile.writelines(list1)
    outfile.write('@@**%%##')
    outfile.close()
main()

这里写图片描述

修改文本文件中的元素

为了获取执行任务所需的权限,首先使用下面这个语句来导入标准库模块os:
import os
习惯上,我们将这个语句放在程序的最开头,在main函数之前。
在此之后,语句os.remove(fileName)会删除指定文件。
语句os.rename(oldFileName,newFileName)会修改文件的名字,甚至可能是文件的路径。
注意:remove和rename函数不可以使用在已经打开的文件上;如果这么做会产生错误信息。并且rename函数的第二个参数也不可以是一个已经存在的文件的名字。
如果删除、重命名或者为了读入而打开一个不存在的文件,name会产生一条错误信息。
函数os.path.isfile(fileName) 在指定文件存在时会返回True,否则返回False。它可以用来在试图重命名、删除或者读入一个文件之前,确认其是否存在。

集合

列表是元素的顺序存储容器,并且允许元素重复。
集合是元素的无序存储容器,不允许重复的元素。列表使用方括号来包围元素,而集合使用花括号来包围元素集合可以容纳数值、字符串、元组和布尔变量。然而集合不可以容纳列表或者其他集合。
w={‘s’,’ni’}
这里写图片描述
尽管一个集合中的元素不能被排序,但是可以使用如下形式的语句,将元素按照自定义的顺序放入到一个列表中:

sorted(set1,key=f,reverse=BooleanValue)

集合推导

如列表一样,集合可以使用推导来创建。
{x*x for x in range(-3,3)}创建了集合{0,1,4,9}

集合论方法

Python拥有从两个已存在的集合创建新集合的方法。

合并两个集合
set1.union(set2)是包含了出现在set1或者出现在set2的元素,并且元素不重复的的集合。

一个新的集合,其包含了同时出现在两个集合中的元素
set1.intersection(set2)是包含了同时出现在set1和set2的元素的集合。

删除一个集合出现在另一个集合中的元素
set1.difference(set2)是从set1中排除了出现在set2的元素的集合。

在文件中使用集合论的方法

按照下面的三个步骤,从两个相关的文本文件中提取信息:
1、创建两个集合,分别包含了两个文件中的内容。
2、使用集合操作,例如union,intersection或者difference,应用到这两个集合上
3、将得到的集合的结果写入到一个新的文本文件中。

待处理的数据通常来自包含大型表格的文件

CSV文件

CSV(Comma-Separated file)
CSV格式文件的文本文件,每一行都包含了若干条数据项,每一项数据之间使用逗号隔开。
文件中的每一行称为一条记录

访问CSV文件中的数据

我们可以将一个CSV文件中的数据存入到一个列表中,然后分析它。这个列表中的每一项也是一个列表,包含了文件一行的内容。

分析数值数据

Excel和CSV文件

CSV文件和Excel表格可以互换。
如果创建或者下载了一个Excel表格,也可以将其转换为一个CSV文件。单击菜单中“另存为”,在保存类型下拉菜单中选择“CSV(逗号分隔)(*.csv)”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值