一:文件
python是跨平台,在不同操作系统下 不需要改代码直接运行 有os模块
二:picker :把对象转化为二进制流的过程
unpicker:把二进制流转化为对象的过程
把对象转化为二进制流
>>> arr = [213, 23.4, 'xiaoji', ['sdf']]
>>> pickle_file = open('file_fil', 'wb')
>>> pickle.dump(arr, pickle_file)
>>> pickle_file.close()
>>>
读取:把二进制流转化为对象
>>> pickle_file = open('file_fil', 'rb')
>>> my_list = pickle.load(pickle_file)
>>> print(my_list)
[213, 23.4, 'xiaoji', ['sdf']]
>>>
上面是存取的文件,并且后缀名可以随意写,只是为了区分。
用途:把项目中的一些数据保留起来,这样就不占据项目的大小
三:异常处理
3.1:try
try:
int('abc')
sum = 1+ '1'
f = open('为事故图个web.md')
print(f.read())
f.close()
except OSError as reason:
print('文件出错啦\n:'+ str(reason))
except TypeError as reason:
print('类型出错了\n:'+ str(reason))
结果:
文件出错啦
:[Errno 2] No such file or directory: '为事故图个web.md'
>>>
=============== RESTART: /Users/hongbaodai/Desktop/Untitled.py ===============
类型出错了
:unsupported operand type(s) for +: 'int' and 'str'
>>>
=============== RESTART: /Users/hongbaodai/Desktop/Untitled.py ===============
Traceback (most recent call last):
File "/Users/hongbaodai/Desktop/Untitled.py", line 2, in <module>
int('abc')
ValueError: invalid literal for int() with base 10: 'abc'
>>>
try:
检测范围
except Exception[as reason]:
出现异常(Exception)后的处理代码
finally:
无论如何都会被执行的代码
3.2:raise:自己抛出异常
>>> raise ZeroDivisionError('除数为零的异常')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
raise ZeroDivisionError('除数为零的异常')
ZeroDivisionError: 除数为零的异常
四:else with