前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文件操作深入讲解

文件操作深入讲解

作者头像
清菡
发布2020-12-02 15:26:36
6240
发布2020-12-02 15:26:36
举报
文章被收录于专栏:清菡软件测试清菡软件测试

本文简介

文件操作

  • file对象测试数据的读写与操作
  • OS对目录的操作以及引用

代码如下

代码语言:javascript
复制

#疑问:如果是要打开一个操作文件  使用绝对路径好还是相对路径好?
#都可以  在做项目的时候会分析这个点
# 跨级新建目录
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调试方法以及技巧
代码语言:javascript
复制

#两个问题

#类与对象--调式

#异常处理--抓了之后  要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


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文简介
  • 文件操作
    • 代码如下
    • 文件异常
      • 代码如下
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档