既然Python是一门面向对象的编程语言,那么今天我们着重讲一下如何处理"对象"
一、文件
之前接触到的一系列数据值,都是在内存中的,也就是不会永久保存。当数据量非常小的时候,当然可以每次都临时定义生成,但如果数据量稍大,这样处理就不合适了。结合我们平时使用电脑的习惯,其实大部分数据都是以“文件”式存在于硬盘里的,比如.avi, .torrent,.exe, .txt等。
1.open函数
利用python的内置函数open()可以执行打开文件的操作,对于一些python的数据科学库像numpy和panda有自己的文件读取函数。下面我们通过一个简单的例子展示一下:open("hope.txt", "r")
open函数与我们之前介绍的print函数不同,接受了两个参数,参数之间以逗号隔开。
"hope.txt":目标文件名,字符串类型;
"r":打开模式,"r"代表“只读”(read)。另有"w"表示“写入”(write),"a"表示“增补”(append)。
但是open函数并不会显示文件的内容,比如看下面的这个例子:
当你运行这段代码将会得到<_io.TextIOWrapper name='taijian.txt' mode='r' encoding='UTF-8'>
答案:data = f.read()mons = data.split('
')for i in mons:mons_data.append(i.split(','))
如果有一个函数,只要指定目标csv文件,就可以直接生成二维数组,岂不美哉?但是Python并没有内置这样的功能,那就需要定义自己的函数。函数定义的关键字是def,也就是"define"的缩写。定义语句格式与for循环有些类似,同样包括语句头和语句体,需要特别注意的仍然是语句头结尾的冒号(:)和语句体的缩进:
我们希望能够有一个函数,读取指定的csv文件,返回经过切分的二维数组,那么这个函数应该是这样的: