本文简介
文件操作
- file对象测试数据的读写与操作
- OS对目录的操作以及引用
代码如下
#疑问:如果是要打开一个操作文件 使用绝对路径好还是相对路径好?
#都可以 在做项目的时候会分析这个点
# 跨级新建目录
import os
# 新建一个目录/新建一个文件夹
#os.mkdir("Alisa")
#按Ctrl,点击mkdir可以看源码。或者直接Ctrl+B直接看源码
# 跨级新建目录 用/符号代表路径的不同层级,
# 如果跨级建目录,必须确保上面的层级是存在的
#os.mkdir("Alisa/Vict")#相对路径
#os.mkdir("D:\\pest_python11")
#os.mkdir("D:/pest_python11")
#转义字符 \n \t 通过加\ 还有r R来让转义字符失效
#是转义字符,必须是两个\\
#删除 删除文件 也是1级1级的删除 不推荐大家一次性删除
#拓展1: Python 可否强制删除
#os.mkdir("Alisa/vict")
#os.rmdir("Alisa")#OSError: [WinError 145] 目录不是空的。: 'Alisa'
#os.remove("Alisa")#PermissionError: [WinError 5] 拒绝访问。: 'Alisa'
#拓展2:怎么去新建文件 open 删除文件?
#路径的获取1 获取当前工作目录 具体到最后1级目录
#path=os.getcwd()
#print("1获取到的当前路径是:{0}".format(path))
#路径获取2 获取当前文件所在的绝对路径 具体到模块名
#path_2=os.path.realpath(__file__)
#print("2获取到的当前路径是:{0}".format(path_2))
#__file__是Python里面的一个静态变量
# __file__在这里表示当前文件(代码正在运行的这个文件)它本身
#第三个知识点:如何拼接路径
#new_path_1 =os.getcwd() #getcwd()获取当前路径
# new_path_1 =os.getcwd()+"/python1" #拼接路径
# print(new_path_1)
# os.mkdir(new_path_1)#新建路径
#join
#new_path_2=os.path.join(os.getcwd(),"python666","sub_1")
#必须先新建上1级目录python666,才能新建sub_1
#new_path_2=os.path.join(os.getcwd(),"python666\sub_2") 可在python666下创建子目录,
# 多个参数在一起,必须加\, 正斜杠和反斜杠可以随便用,区分是2级
#new_path_2=os.path.join(os.getcwd(),"python666","sub_2","sub_111") 可以放多个子目录
#new_path_2=os.path.join(os.getcwd(),"python666/sub_2","sub_111\sub")
#new_path_2=os.path.join(os.getcwd(),"python666\sub_3") 可在python666下创建子目录,必须加\
#new_path_2=os.path.join(os.getcwd(),"python666","python666")可创建相同名称的目录
#print(new_path_2)
#os.mkdir(new_path_2)
#\区分层级,逗号区分函数
#判断是文件还是目录
#print(os.path.isfile(__file__))#返回值 布尔值 True
#__file__确定当前工作目录的最后1级文件
#print(os.path.isfile(os.getcwd()))#返回值 布尔值 False
#getcwd()确定当前工作目录的最后1级目录,不到文件 isfile判断是不是文件
#print(os.path.isdir(os.getcwd()))# True isdir判断是不是路径、目录
#怎么去判断文件是否存在?返回布尔值
#print(os.path.exists("C:\\Users\\18210\Desktop\python\jiaoben\\ningmenban\\13-14\class_02"))
#罗列出当前路径下的所有文件
print(os.listdir(os.getcwd()))
#作业题
#给定一个路径,请打印出所有的路径,直至(这个路径下没有目录为止)
#思路:递归函数,写成一个函数
#相当于打印所有的路径
for path in os.listdir(os.getcwd()):
if os.path.isdir(path):
os.listdir(os.path.join(os.getcwd(),path))
print("{0}还需要进一步处理".format(path))
else:
print("这个是已经穷尽的路径",os.path.join(os.getcwd(),path))
文件异常
代码如下
- python异常处理&异常基类学习
- Python调试方法以及技巧
#两个问题
#类与对象--调式
#异常处理--抓了之后 要raise出来呢?单元测试
#异常处理&调式(类与对象会讲调试)
#异常:在运行代码过程中遇到的任何错误,带有error字样的 都是异常
#异常处理:我们对代码中所有可能会出现的异常进行的处理
#疑问:为什么要去进行处理?
import os
#try:#警察
# os.mkdir("Alisa")#FileExistsError #嫌疑人
#except FileExistsError:#except 警力出动
# print("抓捕归案,等待进一步处理")
#print("我是个吃货")#我是个吃货
#os.mkdir("Alisa")# #FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'Alisa'
#print("我是个吃货")#FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'Alisa'
#代码是从上往下开始执行的
#try:#警察
# os.mkdir("Alisa")#FileExistsError #嫌疑人
#except OSError:#except 警力出动
# print("抓捕归案,等待进一步处理")
#print("我是个吃货")#我是个吃货
#try:#警察
# os.mkdir("Alisa")#FileExistsError #嫌疑人
#except Exception:#except 警力出动
# print("抓捕归案,等待进一步处理")
#print("我是个吃货")#我是个吃货
#Exception处理所有异常错误
#try:#警察
# os.mkdir("Alisa")#FileExistsError #嫌疑人
#except:#except 警力出动#有错就抓,大小事全都管,管的最宽
# print("抓捕归案,等待进一步处理")
#print("我是个吃货")#我是个吃货
#既要抓 还要有处理
#try:
# os.rmdir("Alisa")#OSError
#except OSError as e:#把错误抓起来存到变量e里面去
# print("抓捕归案,等待进一步处理")
# print("你犯的错误为:{0}".format(e))
#可能写入日志、文档、Excel、存入数据库里面
# file=open("error.txt","a+",encoding="utf-8")
# file.write(str(e))
# file.close()#关闭文件error
#2:try..except..finally
#try:
# os.rmdir("Alisa")#OSError
#except Exception as e:#把错误抓起来存到变量e里面去
# print("抓捕归案,等待进一步处理")
# print("你犯的错误为:{0}".format(e))
#可能写入日志、文档、Excel、存入数据库里面
# file=open("error.txt","a+",encoding="utf-8")
# file.write(str(e))
# file.close()#关闭文件error
#finally:#我就是天下第一 你犯错不犯错 我都是要执行的
# print("我就是这么厉害!啦啦啦")
#3:try..except..else 不常用
try:
os.rmdir("Alisa/vict")#OSError
except Exception as e:#把错误抓起来存到变量e里面去
print("抓捕归案,等待进一步处理")
print("你犯的错误为:{0}".format(e))
#可能写入日志、文vict档、Excel、存入数据库里面
file=open("error.txt","a+",encoding="utf-8")
file.write(str(e))
file.close()#关闭文件error
#else:#跟try下面的代码是一起的 你好我就好 你不好我就不好了
# print("我就是这么厉害!啦啦啦")
#try:
# os.rmdir("Alisa")#OSError
#except Exception as e:#把错误抓起来存到变量e里面去
# print("抓捕归案,等待进一步处理")
# print("你犯的错误为:{0}".format(e))
#可能写入日志、文档、Excel、存入数据库里面
# file=open("error.txt","a+",encoding="utf-8")
# file.write(str(e))
# file.close()#关闭文件error
#OSError包含FileExistsError。错误是有层级的,FileExistsError更加精确,
# 但是如果不是那个错误就不可以解决问题
#os.rmdir("Alisa")#OSError: [WinError 145] 目录不是空的。: 'Alisa'
#print(a)#NameError: name 'a' is not defined
#def add(a,b):#TypeError: add() missing 1 required positional argument: 'b'
# print(a+b)
#add(3)
#file=open("清菡.txt")#io.UnsupportedOperation: not writable
#file.write("干啥啥不行,吃饭第一名")
#1:处理某个错误 FileExistsError #2:处理某种类型的错误 OSError #3:有错就抓 except
欢迎扫码关注!