1.OS模块。Python是跨平台的语言,也就是说,同样的源代码在不同的操 作系统不需要修改就可以同样实现。有了OS模块,不需要关心什么操 作系统下使用什么模块,OS模块会帮你选择正确的模块并调用。
2.os.path模块
注意:join()函数与BIF的那个join()函数不同,os.path.join()用于将路径名 和文件名组合成一个完整的路径。getatime()、getctime()和getmtime()分别用于获得文件的最近访问时 间、创建时间和修改时间。不过返回值是浮点型秒数,可用time模块的 gmtime()或localtime()函数换算。
3.pickle模块
可以非常容易地将列表、字典这类复杂数据类型存储为文件。这是一个令人惊叹 (amazing)的模块,它几乎可以把所有Python的对象都转化为二进制 的形式存放,这个过程称为pickling,那么从二进制形式转换回对象的 过程称为unpickling。
import pickle
my_list = [123, 3.14, '小甲鱼', ['another list']]
pickle_file = open('D:\\my_list.pkl', 'wb')
pickle.dump(my_list, pickle_file)
pickle_file.close()
这里希望把这个列表永久保存起来(保存成文件),打 开的文件一定要以二进制的形式打开,后缀名倒是可以随意,不过既然 是使用pickle保存,为了今后容易记忆,建议还是使用.pk或.pickle。使 用dump方法来保存数据,完成后记得保存。
import pickle
pickle_file = open("D:\\my_list.pkl", "rb")
my_list = pickle.load(pickle_file)
print(my_list) #[123, 3.14, '小甲鱼', ['another list']]
利用pickle模块,不仅可以保存列表,事实上pickle还可以保存任何你能想象得到的东西。
4.python异常
1)AssertionError:断言语句(assert)失败
2)AttributeError:尝试访问未知的对象属性
3)IndexError:索引超出序列的范围
4)KeyError:字典中查找一个不存在的关键字。建议使用dict.get()方法:
5)NameError:尝试访问一个不存在的变量
6)OSError:操作系统产生的异常
8)TypeError:不同类型间的无效操作
9)ZeroDivisionError:除数为零
5.异常捕获
try-except语句;
1. 针对不同异常设置多个except
2. 对多个异常统一处理
3. 捕获所有异常
注意:try语句检测范围 内一旦出现异常,剩下的语句将不会被执行。
try-finally语句:
finally语句块中的内容就是确保 无论如何都将被执行的内容。
raise语句
我的代码能不能自己抛出一个异常呢?答案是可以的,可以使用raise语句抛出一个异常
6.else语句的多种作用
在Python中,else语句不仅能与if语句搭配,构成“要么怎样,要么不怎样”的句式;它还能与循环语句(for语句或者while语句),构成“干完了能怎样,干不完就别想怎样”的句式;其实else语句还能够与 异常处理进行搭配,构成“没有问题?那就干吧”的句式。
#else与循环语句的搭配
def showMaxFactor(num):
count = num // 2
while count > 1:
if num % count == 0:
print('%d最大的约数是%d' % (num, count))
break
count -= 1
else:
print('%d是素数!' % num)
num = int(input('请输入一个数:'))
showMaxFactor(num)
#else与异常搭配
try:
int('10')
except ValueError as reason:
print('出错啦:' + str(reason))
else:
print('没有任何异常!')
7.简洁的with语句
即要打开文件又要关闭文件,还要关注异常处 理,有点烦琐,所以Python提供了一个with语句,利用这个语句抽象出 文件操作中频繁使用的try/except/finally相关的细节。对文件操作使用 with语句,将大大减少代码量,而且再也不用担心出现文件打开了忘记 关闭的问题了(with会自动帮助关闭文件)。
try:
f = open('data.txt', 'w')
for each_line in f:
print(each_line)
except OSError as reason:
print('出错啦:' + str(reason))
finally:
f.close()
#上面的代码可以改写成如下的写法
try:
with open('data.txt', 'w') as f:
for each_line in f:
print(each_line)
except OSError as reason:
print('出错啦:' + str(reason))