Python玩转数据分析学习笔记-03数据获取

三、数据获取

1.本地数据获取

文件打开以后才能读写

文件的打开:

         file_obj=open(filename,mode=’r’, buffering=-1)

         mod为可选参数,默认值为r

        

mode

function

r

以读模式打开

rU or U

以读模式打开,并提供通用换行符支持

w

以写模式打开(清空原内容)

a

以追加模式打开(从EOF开始,必要时创建新文件)

r+

以读写模式打开

w+

以读写模式打开(清空原内容)

a+

以读和追加模式打开

rb

以二进制读模式打开

wb

以二进制写模式打开,w

ab

以二进制追加模式打开,a

rb+

以二进制读写模式打开,r+

wb+

以二进制读写模式打开,w+

ab+

以二进制读写模式打开,a+

 

         buffering也为可选参数,默认值为-10代表不缓冲,1或大于1的值表示缓冲一行或制定缓冲区大小)

文件相关函数:

返回值:open()函数返回一个文件(file)对象

文件对象可迭代

有关闭方法和许多读写相关的方法/函数:

-f.read(), f.write(), f.readline(), f.readlines(),f.writeline(), f.writelines()

-f.close()

-f.seek()

对象.方法(参数)

 

f.read(size) 通过size指定读出来的字符数

f.seek(offset,whence=0)

         -在文件中移动文件指针,从wence0表示文件头部,1表示当前位置,2表示文件尾部)偏移offset个字节

 

 

2.网络数据获取

网络数据如何获取?——抓取网页解析网页内容

urllib

urllib2

httplib

httplib2

 

urllib:

import urllib

r=urllib.urlopen(网址)

r.read(), r.readline(), r.readlines(),

r.close()

 

 

3.序列

数组、列表、字典

 

切片:a[起始位:结束位:增量]

 

序列类型转换工厂函数:

list()                   转成列表

str()                  

Unicode()

basestring()

tuple()               转成元组

序列类型可用内建函数:

enumerate()

len()

max()

reversed()

sorted()

sum()

zip()

 

 

4.字符串

格式运算符%

格式化字符

转换方式

%c

转换成字符(ASCII值或长度为1的字符串)

%r

优先使用repr()函数进行字符串转换

%s

优先使用str()函数进行字符串转换

%d/%i

转换成带符号的十进制整数

%u

转换成无符号十进制整数

%o

转换成无符号八进制数

%x/%X

转换成无符号十六进制数(x/X表示大小写)

%e/%E

转换成科学计数法

%f/%F

转换成浮点数(部分小数自然截断)

%g/%G

选择%e/%f或%E/%F中输出更短的形式输出

%%

输出%

 

格式运算符辅助符

符号

功能

*

定义宽度或精度

-

用作左对齐

+

在正数前显示加号

<sp>

在正数前显示空格

#

在八进制数前显示零,在十六进制前显示’0x’或’0X’

0

显示数字时前面用0填充而不是默认的空格

%

‘%%’输出一个’%’

(var)

映射变量(参数为字典)

m.n

m是显示的最小总宽度,n是小数点后的位数(如果可用的话)

 

 

字符串的内建函数:

 Python玩转数据分析学习笔记-03数据获取

转义字符

字符

说明

\0

空字符

\a

响铃

\b

退格

\t

横向制表符

\n

换行

\v

纵向制表符

\f

换页

\r

回车

\e

转义

\”

双引号

\’

单引号

\\

反斜杠

\(在行尾时)

续行符

 

 

 

5.列表

[ ]

可扩展的容器对象

可以包含不同类型的对象

list.sort()                   排序

list.pop()                    去掉结尾元素

list.pop(n)                 去掉标号为n的元素

list.append(元素)    在末尾加入元素

list.extend(list2)      合并两个列表

list.count()

list.index()

list.insert()

list.remove()

list.reverse()

 

列表解析:动态创建列表,简单灵活应用

[expression for expr in sequence if condition]

 

 

6.元组

( )              元组-圆括号

内容不可改变,不支持元素赋值

可以使用sorted()函数排序,因为sorted()不改变原本的内容,新生成一个副本列表。

不能使用sort()函数,因为sort()函数要改变原本的顺序。

 

元组的应用:

①  在映射类型中当作键使用

②  函数的特殊类型参数

③  作为很多内建函数的返回值

元组作为函数的形式参数:

def func(args1, *argst):

         print args1

         print argst

>>>func(‘Hello,’, ‘A’ , ‘B’ , ‘C’)

Hello,

(‘A’ , ‘B’ , ‘C’)

元组作为返回类型:

返回对象的个数

返回类型

0

None

1

object

>1

tuple