以写模式打开文件
使用open() BIF打开磁盘文件时,可以指定使用什么访问模式。默认使用模式r表示读,要打开一个文件完成写,需要使用模式w
aa=open("data.haha","w")
默认,print() BIF显示数据时会使用标准输出(通常是屏幕)。要把数据写至一个文件,需要使用file参数来指定所使用的数据文件对象:
print("adfasdf",file=aa)
完成工作时,一定要关闭文件,确保所有数据都写至磁盘。这成为刷新输出,这一点非常重要:
aa.close()
GEEK BITS
使用访问模式w时,Python会打开指定的文件来完成写。如果这个文件已经存在,则会清空它现有的内容,也就是完全清楚。要追加到一个文件,需要使用访问模式a。要打开一个文件来完成写和读(不清楚),需要使用w+。如果想打开一个文件完成写,但是这个文件并不存在,那么首先会为你创建这个文件,然后再打开文件进行写。
用finally扩展try
try:
.........
except ..
.......
finally:
..........
如果没有出现任何运行时错误,会执行finally组中的代码。如果出现异常,会执行except组,然后运行finally组。
import os print(os.getcwd()) os.chdir('D:/CY') try: data=open('missing.txt') print(data.readline(),end='') except IOError as err: print('file error'+str(err)) finally: if 'data' in locals(): data.close()
#locals() BIF 会返回当前作用域中定义的所有名的一个集合。
用with处理文件
with open('1.txt','w')
使用with时,不在需要操心关闭打开的文件,因为Python解释器会自动为你考虑这一点。
with语句利用了一种名为上下文管理协议的Python技术。
#呵呵哒 import os import sys os.chdir('C:/') def print_lol(the_list,indent=False,level=0,fh=sys.stdout): for each_item in the_list: if isinstance(each_item,list): print_lol(each_item,indent,level+1,fh) else: if indent: for tab_stop in range(level): print("\t",end='',file=fh) print(each_item,file=fh) man=[123,123,124,124,[123,123,32]] other=[123,123,124,124,[123,123,32]] try: with open('man.txt','w') as man_file: print_lol(man,fh=man_file) with open('other_data.txt','w') as other_file: print_lol(other,True,fh=other_file) except IOError as err: print('file error'+str(err))
用DUMP保存,用LOAD恢复
import pickle with open('11','wb') as mmm: pickle.dump([1,2,'erwe'],mmm) with open('11','rb') as aaa: a_list=pickle.load(aaa) print(a_list)
BULLET POINTS
- strip()方法可以从字符串去除不想要的空白符。
- print() BIF的file参数控制将数据发送/保存到哪里
- finally组总会执行,而不论try/except语句中出现什么异常。
- 会向except组传入一个异常对象,并使用as 关键字赋至一个标识符。
- str() BIF可以用来访问任何数据对象(支持串转换)的串表示
- locals()BIF返回当前作用域中的变量集合。
- in操作符用于检查成员关系。
- “+”操作符用于字符串时将联接两个字符串,用于数字时则会将两个数相加。
- with语句会自动处理所有已打开文件的关闭工作,及时出现异常也不例外。with语句也使用as关键字。
- sys.stdout是Python中所谓的“标准输出”,可以从标准库的sys模块访问。
- 标准库的pickle模块允许你容易而高效地将Python数据对象保存到磁盘以及从磁盘恢复。
- pickle.dump()函数将数据保存到磁盘
- pickle.load()函数从磁盘恢复数据。