'''
==================================
cooding:utf-8
@Time :2020/6/3 19:21
@Author :henry
@Email :yinpingwei@gmail.com
@File :2020-06-02第八节课python.py
@Software:PyCharm
===================================
'''
# 包引入
'''
库:提供一系列的功能。
1.内置库/包 - 不需要安装可以直接使用,安装路径在:Lip
2.第三方库/包 - 先pip安装在使用,安装路径在:Lip\site-packages
3.自定义的模块/包(有2种)
a.同级目录:import 模块名
b.相对于工程目录引入(最常用的):
1.import 包名.模块名
2.from 包名 import 模块名
3.from 包名.[包名.包名] import 模块名 [as 别名]
4.from 包名.[包名.包名].模块名 import 变量名/函数名/类名
模块:py文件
包:__init__.py的文件夹
'''
# 自己创建自定义的文件时,命名千万不要用库名
# 得到搜索路径:
import sys # import 模块
for item in sys.path: # 遍历这个
print(item) # 打印
# 自定义模块引入语法
# 1.同级目录:import 模块名
import love_py # 有bug,一般不用
# 2.相对于工程目录引入(最常用的):
# a.import 包名.模块名
# # b.from 包名 import 模块名
# os模块 path处理路径
import os
# os路径操作(主要三个方法)
# 熟记:os.path.abspath() 和 os.path.join(a,b)
# 1.os.path.abspath() 获取当前文件的绝对路径
re = os.path.abspath('love_py') # 或者也可以用.来代替,表示当前文件
print(re)
# 2.os.path.dirname() 返回文件/目录所在的路径
ks = os.path.dirname(re) # 参数是个绝对路径
print(ks)
s = os.path.dirname(ks) # 在获取他的上一级路径
print(s)
# 3.os.path.join(a,b) 链接两个部分的路径,组成一个完整的路径
# 得到项目目录下,另外一个文件的绝对路径
# 路径拼接
res = os.path.join(s,"love_py") # 路径拼接处理
print(res)
# 4.os.getcwd() 显示当前的工作路径
y = os.getcwd()
print(y)
# 5.os.mkdir() 在某个路径下创建一个新目录
# 指定路径下创建
path = r'E:\Python-workspace\py30\2020-06-02-第八节课' # 需要创建的路径
os.mkdir(path + './fiel1') # 创建新的目录
# # 在当前路径下创建
r = os.mkdir('list')
print(r)
# 6.os.rmdir() 删掉一个目录
deo = os.rmdir('fiel1')
print(deo)
# 7.os.listdir() 获取当前路径下的目录列表,返回列表格式的数据
po = os.listdir('.') # 获取当前目录下的
print(po)
# 8.os.path.isdir() 判断当前文件是否是目录,返回布尔值
pr = os.path.isdir(r'E:\Python-workspace\py30\2020-06-02-第八节课\love_py')
print(pr)
# 9.os.path.isfile() 判断当前文件是否是文件,返回布尔值
to = os.path.isfile('.')
print(to)
'''
还有其他了解
os.getcwd() 显示当前的工作路径
os.chdir() 切换当前路径
os.mkdir() 在某个路径下创建一个新目录
os.rmdir() 删掉一个目录
os.listdir() 获取当前路径下的目录列表,返回列表格式的数据
os.path.isdir() 判断当前文件是否是目录,返回布尔值
os.path.dir() 判断当前文件是否是文件,返回布尔值
'''
# 魔法变量:file /name
# _file_:文件名(pycherm直接运行时的路径)
# _name_:所在模块(文件)的模块名
# (如果文件时程序的启动文件,name值为_main_)
# __file__ : 当前文件名。
# __name__ : 如果是运行当前文件,那么 它的值为:__main__
# 异常处理
'''
1、先翻译报错
2、找到自己写的代码当中的,第几行出错了。
文件处理:文件不存在/路径不存在
捕获异常!!
在程序当中,抓到这个异常,可以加上我们自己额外的代码处理。然后再抛出异常。
我怎么知道哪一行要出错?
我怎么知道,我要捕获什么异常?
1.与第三方资源交互的时候,一定要处理异常。
2.资源释放的问题。--- http连接/数据库连接/excel操作
try:
可能会出错的代码
except:(如果出错了,进入except)
逮到异常。
代码报错之后会执行的代码。
[else:
try里面代码没报错的时候,会执行的代码。
finally:
无论是否出现异常,一定会执行的代码。
]
如果你捕获到了异常,并且做了你想做的事情。然后再抛出这个异常给到:
raise
'''
# 如果文件打开成功,则接着写入数据。
try:
fs = open(r"D:\Pychram-Workspace\py30\python练习.txt","r",encoding="utf-8")
# fs.write("成功写入")
except: # 捕获异常
print("代码出错了!!") # 我做了我自己的事情。输出了一些内容。
raise # 会把异常信息抛出。让python接收到
else:
fs.write("成功写入")
finally:
print("一定会执行的代码!!")
try:
fs.close() # 清理收尾工作。无论成功还是失败都会执行的代码。
except:
pass # 如果fs.close()失败了,不用处理。直接忽略异常。
'''
# 总结:
# 1、使用外部资源,需要做清理工作。
# 2、你想捕获到异常,在异常情况下,做一些自己的处理。
# 模块引入: 相对于项目目录引入。 from 包 import 模块
# 路径处理:os模块。获取绝对路径。__file__ os.path.abspath(__file__)
# 获取所在的目录 os.path.dirname(绝对路径)
# 路径拼接 os.path.join(路径1,文件名) --最终是个绝对路径。
# # 异常处理: try:
# 可能会出现异常的代码
# except:
# try里的代码有异常,则会执行此处的代码
# [else:
# try里的代码没出现异常,则执行此处代码
# finally:
# 无论try里的代码有没有出异常,必定会执行的操作。
# 一般来讲,清理工作。]
'''
2020年6月3日08---python包导入、os模块操作以及异常处理
最新推荐文章于 2022-05-07 11:43:28 发布