Head First Python 学习札记 2016-04-08
2016-04-08 17:45
537 查看
Python术语和常识
19将文件分开存储到不同数组中
20以写模式打开文件
21捕获异常的详细信息
22使用with来处理文件
23控制输出文本的样式
24利用pickle引擎的dump方法和load方法来处理数据
1)、在Python中else if写做elif
2)、字符串在调用upper()方法的时候,会得到一个全部大写的字符串
3)、ocals()方法:在程序中查找已经声明的变量名,in操作符用于检查成员关系。使用方法
如果datas是已经申明的变量就返回true否则返回false
4)、str方法:可以将任何数据类型转化成字符串型
5)、print()方法的file参数可以指定数据发送/保存的路径
6)、strip()方法可以从字符串中去除不想要的空白
7)、finally组总会执行,而无论try/except语句中出现什么异常
8)、可以向except组中传入一个异常对象,并使用as关键字赋值给一个标志符
9)、with语句会处理所有已经打开的文件的关闭工作,无论哪里出现异常,都不会影响它。with语句也使用as关键字。
10)、sys.stdout是Python中所谓的标准输出,目标是屏幕,使用前需要import sys
11)、标准库pickle允许你容易而高效地将Python数据对象保存到磁盘以及从磁盘恢复
11、有些时候,需要查看输出结果,但是Python查程序执行完成之后就立刻关闭了Dos窗口,这样的话,实际上,是看不到什么的,这时在Python程序的结尾处加上input()函数,在执行到这里的时候就会自动的等待输入文本,之前输出的结果就能看到了。或者说在py文件所在的目录中打开Dos窗口,再运行py文件,就可以监控到报错了。
12、不可变类型:Python中的一些数据类型一旦赋值,这个值就是不可改变的了。
13、腌制:将数据对象保存到一个持久存储的过程
解除腌制:从持久存储中恢复数据
11、有些时候,需要查看输出结果,但是Python查程序执行完成之后就立刻关闭了Dos窗口,这样的话,实际上,是看不到什么的,这时在Python程序的结尾处加上input()函数,在执行到这里的时候就会自动的等待输入文本,之前输出的结果就能看到了。
2016-04-08
默认地,print()BIF显示数据时会使用标准输出(通常是屏幕)。要把数据写到一个文件,需要使用file参数来指定所使用的数据文件对象。
在完成写入之后,要把关闭文件,这很重要,被称为刷新。
访问模式辨析:
以写模式打开文件,代码如下:
注意try/excrpt后面的冒号:
读文件的时候,如果出现IOError,原始数据不会损坏
写文件的时候,在关闭文件之前出现IOError,数据是会损坏的,这时使用finally来拓展try
·
还可以将两个文件操作写到同一个with里面
可以通过改写print_lol函数来实现
1、导入pickle模块,import pickle
2、用pickle模块的内置函数dump和load来读取数据
19将文件分开存储到不同数组中
20以写模式打开文件
21捕获异常的详细信息
22使用with来处理文件
23控制输出文本的样式
24利用pickle引擎的dump方法和load方法来处理数据
Python术语和常识:
10、第四章新知识点小结:1)、在Python中else if写做elif
2)、字符串在调用upper()方法的时候,会得到一个全部大写的字符串
3)、ocals()方法:在程序中查找已经声明的变量名,in操作符用于检查成员关系。使用方法
if 'datas' in locals():
如果datas是已经申明的变量就返回true否则返回false
4)、str方法:可以将任何数据类型转化成字符串型
5)、print()方法的file参数可以指定数据发送/保存的路径
6)、strip()方法可以从字符串中去除不想要的空白
7)、finally组总会执行,而无论try/except语句中出现什么异常
8)、可以向except组中传入一个异常对象,并使用as关键字赋值给一个标志符
9)、with语句会处理所有已经打开的文件的关闭工作,无论哪里出现异常,都不会影响它。with语句也使用as关键字。
10)、sys.stdout是Python中所谓的标准输出,目标是屏幕,使用前需要import sys
11)、标准库pickle允许你容易而高效地将Python数据对象保存到磁盘以及从磁盘恢复
11、有些时候,需要查看输出结果,但是Python查程序执行完成之后就立刻关闭了Dos窗口,这样的话,实际上,是看不到什么的,这时在Python程序的结尾处加上input()函数,在执行到这里的时候就会自动的等待输入文本,之前输出的结果就能看到了。或者说在py文件所在的目录中打开Dos窗口,再运行py文件,就可以监控到报错了。
12、不可变类型:Python中的一些数据类型一旦赋值,这个值就是不可改变的了。
13、腌制:将数据对象保存到一个持久存储的过程
解除腌制:从持久存储中恢复数据
11、有些时候,需要查看输出结果,但是Python查程序执行完成之后就立刻关闭了Dos窗口,这样的话,实际上,是看不到什么的,这时在Python程序的结尾处加上input()函数,在执行到这里的时候就会自动的等待输入文本,之前输出的结果就能看到了。
2016-04-08
19、将文件分开存储到不同数组中:
还是使用sketch.txt文本man = [] othor = [] try: data = open('sketch.txt') for each_line in data: try: (role, line_spoken) = each_line.split(':', 1) line_spoken = line_spoken.strip() if role == 'Man': man.append(line_spoken) elif role == 'Other Man': othor.append(line_spoken) except ValueError: pass data.close() except IOError: print('The data file is missing!') #利用IDLE(Python解释器)执行到这里可能会报错,这样的话,可以先执行之前的代码,再执行下面两句。 print(man) print(othor)
20、以写模式打开文件
out = open("data.out", "w") #data是所写的文件吗名,w是要使用的访问模式。
默认地,print()BIF显示数据时会使用标准输出(通常是屏幕)。要把数据写到一个文件,需要使用file参数来指定所使用的数据文件对象。
print("Norwegian Blues stun easily.", file=out) #Norwegian Blues stun easily.是写入内容,out是所写数据文件的对象名
在完成写入之后,要把关闭文件,这很重要,被称为刷新。
out.close()
访问模式辨析:
模式 | 解释 |
---|---|
w模式 | Python会打开指定的文件来完成写操作,如果这个文件已就存在了就清空它的内容,也就是完全清除。 |
a模式 | 要追加写入一个文件,则需要使用访问模式a。 |
w+模式 | 打开一个文件完成读和写两种操作,在执行写操作的时候,如果文件不存在会为你自动创建一个文件。 |
'''这个Python脚本会把sketch.txt根据开头的是man还是other分成两部分存在不同的txt文件中''' #先把sketch.txt中所有的文本都分别读到man和other中 man = [] other = [] try: data = open('sketch.txt') for each_line in data: try: (role, line_spoken) = each_line.split(':', 1) line_spoken = line_spoken.strip() if role == 'Man': man.append(line_spoken) elif role == 'Other Man': other.append(line_spoken) except ValueError: pass data.close() except IOError: print('The data file is missing!') #再用open的写模式把man和other列表中的数据存到man_data.txt和other_data.txt中。 try: #用写模式(w)打开文件这两个文件并且分别赋至给一个文件对象,将内容写入到man_data.txt和other_data.txt中。 man_file = open('man_data.txt','w') other_file = open('other_data.txt','w') #使用print()将指定的列表保存到指定的磁盘文件,数据的流动是man->man_file->man_data.txt的顺序 print(man, file=man_file) print(other, file=other_file) #不要忘记关闭这两个文件,刷新是很重要的。 man_file.close() other_file.close() #出现I/O异常在这里处理 except IOError: print('File error')
注意try/excrpt后面的冒号:
读文件的时候,如果出现IOError,原始数据不会损坏
写文件的时候,在关闭文件之前出现IOError,数据是会损坏的,这时使用finally来拓展try
man = [] othor = [] try: data = open('sketch.txt') for each_line in data: try: (role, line_spoken) = each_line.split(':', 1) #line_spoken调用strip函数返回一个新的除去了原字符串中空格的字符串 line_spoken = line_spoken.strip() if role == 'Man': man.append(line_spoken) elif role == 'Other Man': othor.append(line_spoken) except ValueError: pass data.close() except IOError: print('The data file is missing!') try: man_file = open('man_data.txt','w') other_file = open('other_data.txt','w') print(man, file=man_file) #如果执行到这里报错了,接下来的close语句就都不会执行了,这样会损坏数据的。 print(othor, file=other_file) man_file.close() other_file.close() except IOError: print('File error') finally: #把关闭文件的语句写在finally里面,这样的话,无论之前在哪里出现IOError都会执行finally里面的关闭语句 man_file.close() other_file.close()
21、捕获异常的详细信息
为捕获的异常命名,然后转化成字符串类型再打印出来。try: data = open('missing.txt') print(data.readline(), end='') except IOError as err: #为捕获的异常命名,然后转化成字符串类型再打印出来。 print('File erroe:'+str(err) finally: if 'data' in locals(): data.close()
·
22、使用with来处理文件
with使用了一种名为上下文管理协议的Python技术try: '''使用了with就不用再设置finally了,下面这句with语句等价于 data = open('sketch.txt', "w")加上finally语句''' with open('sketch.txt', "w") as data: print(data.readline(), end='') except IOError as err: print('File erroe:'+str(err)
还可以将两个文件操作写到同一个with里面
with open('man_data.txt', "w") as man_file,open('other_data.txt', "w") as other_file:
23、控制输出文本的样式
目前,在man_data.txt和other_data.txt中的是一个字符串数组,要把它改写成一行一行的样式。可以通过改写print_lol函数来实现
'''为print_lol()添加第四个参数h=sys.stdout,来标识将把数据写入哪个位置,一定要设置缺省值。这样的话,在使用print_lol()不传fh参的时候也能直接打印在屏幕上(sys.stdout是一个与文件类型兼容的对象,名为标准输出,指输出到屏幕而不是任何路径下的文本。)''' import sys def print_lol(the_list, indent=False, level=0, fh=sys.stdout): for each_item in the_list: if isinstance(each_item, list): #这里的fh已经变成man_file了,也就是man_data.txt print_lol(each_item, indent, level+1, fh) else: if indent: for tab_stop in range(level): #普通的print函数也有fh参数,将其设置为fh(也就是man_data.txt)就能把输出的内容写入man_data.txt了。 print("\t",end='', file=fh) print(each_item) else: print(each_item, file=fh)
try: with open('man_data.txt', "w") as man_file,open('other_data.txt', "w") as other_file: print_lol(man,file=man_file) print_lol(other,file=other_file) except IOError as err: print('File erroe:'+str(err)
24、利用pickle引擎的dump方法和load方法来处理数据
用pickle的dump()方法保存,用load()方法恢复。必须用二进制的方式打开这些文件。1、导入pickle模块,import pickle
2、用pickle模块的内置函数dump和load来读取数据
#用pickle的dump()方法取数据,rb表示以2进制的方式写数据 with open('mydata.pickle','wb') as mysavedata: #在这里存到mydata.pickle中的就是[1,2,'three']这个可变列表 pickle.dump([1,2,'three'],mysavedata) #用pickle的load()方法读数据,wb表示以2进制的方式读数据 with open('mydata.pickle',"rb") as mysavedata: #将恢复之后的数据赋值给一个标识符,load()方法里面直接填写要加载的数据名就好 a_list = pickle.load(mysavedata) #一旦数据从Python的内存中读取到程序的运存中的时候,就可以当做普通数据处理了 print(a_list)
相关文章推荐
- python生成函数
- 输入文件夹路径,将文件夹内文件按大小排序显示
- Python学习资料整理以及书籍、开发工具推荐
- python学习6
- Python程序的混淆和加密
- python的反转(切片)
- Python~删除空格,插入换行符号
- 解决初次安装PyCharm后 No Python interpreter selected的问题
- VIM下python编辑器的简单配置
- python之常用builtins
- python+opencv图像金字塔融合
- python 学习笔记2(list/directory/文件对象/模块/参数传递)
- [pandas] 数据类型学习笔记
- Python如何调用新浪api接口的问题
- python模块及包
- 最长公共子序列(Python)
- Python学习笔记(四)dict和set
- Python基础:数据类型
- 【Python 学习】通过yield 构建迭代生成器
- python re 匹配回车 re.DOTALL