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也为可选参数,默认值为-1(0代表不缓冲,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)
-在文件中移动文件指针,从wence(0表示文件头部,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是小数点后的位数(如果可用的话) |
字符串的内建函数:
转义字符
字符 |
说明 |
\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 |