三、数据获取
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 |