3.1本地数据获取
注意,打开文件要记得关闭文件
文件的打开
file_obj = open(filename,mode = 'r',buffering = -1)
filename:强制参数,必须要有的参数
mode:为可选参数,模式参数,默认为'r'也就是读;'w'为写
buffering: 可选参数,默认为-1, 0代表不缓冲,1或大于1的值表示缓冲一行或指定缓冲区大小 ,注意,为了读写速度快,使用缓冲
调用open()函数返回的是一个文件(file)对象
文件对象可迭代,因此可以遍历其中每一个子项
有关闭方法和许多读写相关的方法/函数
f.read(),f.write(),f.readline(),f.readlines(),f.writelines()
f.close()
f.seek()
写文件:
file_obj.write(str):将一个字符串写入文件
读文件:
file_obj.read(size)
从文件中至多读出size字节数据,返回一个字符串
file_obj.read()
读文件直到文件结束,返回一个字符串
其他读写函数
file_obj.readlines() #将数据从文件中一行一行地读出来,返回一个列表(注意,这里并不删除换行符,同样写的时候也不会加入换行符需要自己加入)
file_obj.readline()
file_obj.writelines()
其他文件相关函数
file_obj.seek(offset,whence = 0)
在文件中移动文件指针,从whence(
0表文件头部,1表当前位置,2表文件尾部)偏移offset个字节
whence参数可选,默认值为0
例如f.seek(1,50) 表示从当前位置向后移动50个字节
标准文件
当程序启动后,一下三种标准文件有效
stdin 标准输人
stdout 标准输出
stderr 标准错误
补充资料:
Python中的os模块提供了执行文件和目录处理操作的函数,例如重命名和删除文件。
要使用这个模块,必须先导入该模块,然后才可以调用相关的各种功能。
import os
os.renames(current_file_name,new_file_name) #文件重命名
os.remove(file_name) #删除文件
os.mkdir(newdir) #创建目录
os.chdir(newdir) #改变目录
os.getcwd() #获得当前路径
os.rmdir(dirname) #删除目录
3.2网络数据的获取
抓取网页,解析网页内容,以下是Python的标准库
urllib
urllib2 #可以用来处理更底层的应用
httplib
httplib2 #http的专用库
利用urllib库获取网络数据
可以通过urllib.urlopen()函数
获取网络数据到本地 #urllib.urlopen('网址')
使用接下来的函数进行处理:
f.read(),f.readline(),f.readlines()
f.close()
其中还可以结合正则表达式等方式
3.3序列
序列是Python最基本的数据结构,共有6中序列,其中常用的有字符串,列表和元组。
序列中每个元素都有一个跟位置相关的序号,称之为
索引。对于一个有N个元素的序列来说,第一个元素的索引从0开始,最后一个为N-1;当然也可以从最后一个元素开始计数,最后一个为-1,那么第一个就为-N。
字符串,列表,元组的共性问题:
- 索引:例如有7个元素的序列:从左到右是0到6的索引;从右到左是-1到-7进行索引;
- 序列对象是可迭代的,一次可以访问一个或者多个元素,也叫切片;
- 序列相关操作:
-
-
- 标准类型运算符:值比较(<、>、<=、>=、==、!=);对象身份比较(is、is not);布尔运算(not、and、or)
- 序列类型运算符:获取([::,-1]表示逆序);重复(*);连接(+);判断(in)
- 内建函数:序列类型转换工厂函数(list()——转成列表、str() 、tuple() ——转成元组、unicode() 、basestring() );序列类型可用内建函数(len() ——计算参数的长度、sorted() ——排序、sum() 、max() 、min() 、zip() 、reversed() 、enumerate() )
-
-
3.4字符串
字符串的不同表示形式:单引号、双引号、和三引号都可以表示
在三引号的字符串里面,用单引号或者双引号的话都不需要进行特殊处理
用r''表示原始字符串非常适合用于路径的字符串,非常方便
输出通常会使用到
格式运算符:
eg:print 'There are
%d punctuation marks.'%(
count)
格式运算符的形式:format_string %(arguments_to_convert)
字符串的应用:
reversed(字符串)——字符串逆序
cmp(字符串1,字符串2)——比较两个字符串
split()——可以用于获取双引号当里的字符串:split('\"')[1] #用双引号作为分隔符,这样字符串就会被分成三段,而第二段,也就是索引为1的就是双引号里的字符串了
转义字符:
- \o 空字符
- \a 响铃
- \b 退格
- \t 横向制表符
- \v 纵向制表符
- \n 换行
- \f 换页
- \r 回车
- \e 转义
- \" 双引号
- \' 单引号
- \\ 反斜杠
- \(在行尾时) 续行符
- \ooo 八进制数ooo代表的字符
- \xxx 十六进制数xx代表的字符
3.5列表
列表是一种可扩展的容器对象,包含不同类型对象,元素可变
列表的操作处理:
sort(a) #默认为将列表元素
从小到大排序,其中,参数
reverse=true,则为从大到小排序;参数key = len,一般用于字符串列表按字符串长度排序
pop(a) #返回剔除的元素
append(a) #只有一个参数a,将a添加至列表末尾
extend(a) #合并列表,列表1.extend(列表2):将列表2加入到列表1的末尾 #只有一个参数a,只能添加至末尾,可以以列表的形式添加多个元素,一个列表拓展另一列表
enumerate(list ) #默认序号是从0开始,用序号分出并且分开显示
count(a) #返回列表元素a的个数
index(a) #返回列表元素a所在的第一个索引
reverse(list1)
#将list1列表倒转,即第一个元素为最后一个元素,第二个为倒数第二个~~
insert(a,b) #a表示添加的位置,b表示添加的元素,注意,a位置是按0,1,2,3说明的
remove(a) #删除元素a
zip(a) #将列表的每个元素都变成一个元组,再由这些元组作为新的列表的元素进行生产一个列表副本,不改变原来的列表
列表解析:由多个for循环以及可迭代的序列构成,另外也可以加条件
eg:for expr in sequence
[x**2 for x in range(10)] >>>>结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
3.6元组
和列表有点像,但是是用
圆括号表示,元组元素是
不可变的。
元组的一般使用和列表相似,可以进行切片,计算长度
元组的创建:
用逗号创建:
sorted() #该函数是产生一个默认从小到大排序 序列副本,并不改变原序列的顺序,可用于对元组进行操作;注意和sort()不同,sort()是改变原序列的顺序的;
元组的作用:
- 在映射类型中当作键使用
- 函数的特殊类型参数
- 作为很多内建函数的返回值
元组作为函数的形式参数:
def func(args1,
*argst) #第二个参数为可变长的参数,用元组表示
元组作为函数的常见返回类型:可以返回多个数值(例如:return 1,2,3)
enumerate()
coerce()