2020年6月3日08---python包导入、os模块操作以及异常处理

'''
==================================
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里的代码有没有出异常,必定会执行的操作。
#                    一般来讲,清理工作。]
'''

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值