异常的使用和文件的读取存储
1 try: 2 data = open('c:/Python33/source/file.txt') 3 except IOError : 4 print('can not find the file')
在捕获异常是可以指定异常类型,如果open指定路径下的那个文件不存在则抛出IOError异常
通过捕获的异常来确定错误信息
1 try: 2 data = open('c:/Python33/READ.txt') 3 except IOError as err: 4 print('file errpr' + str(err)) 5
结果:file errpr[Errno 2] No such file or directory: 'c:/Python33/READ.txt'
with关键字,隐含了晚间刘关闭功能
一般程序:
1 try: 2 data = open('c:/Python33/README.txt') 3 for line in data: 4 print(line) 5 except IOError as err: 6 print('file errpr' + str(err)) 7 finally: 8 data.close() 9
当使用打开文件是需要用finally模块来关闭打开的文件流,当使用with时:
1 try: 2 with open('c:/Python33/README.txt') as data: 3 for line in data: 4 print(line) 5 except IOError as err: 6 print('file errpr' + str(err)) 7 8
可以不需要显示的调用finally来实现文件流的关闭
sys.stdout :指定标准输出流
file = sys.stdout 可以将输出指定到文件中去
实例:
1 import pickle 2 3 a = ['a','b','c'] 4 try : 5 with open('c:/Python33/source/file8.txt','w') as data: #普通方法写入 6 print(a,file = data) 7 8 with open('c:/Python33/source/file9.txt','wb') as data2: #用python自带的pickle写入 9 pickle.dump(a,data2) 10 11 except IOError as err: 12 print('file err' + str(err)) 13 except pickle.PickleError as perr: 14 print('pickle err ' + str(perr))
结果:
file8:['a', 'b', 'c']
file9:€]q (X aqX bqX cqe.
当使用pickle的方法写入时,读取文件需要用pickle的load方法读取。
import pickle a = [] try: with open('c:/Python33/source/file9.txt','rb') as data: a = pickle.load(data) print(a) except IOError as err: print('file err' + str(err)) except pickle.PickleError as perr: print('pick err' + str(perr))