Python-接口自动化(四)

python基础知识(四)

(四)处理文件

a、文件的格式主要有txt、html、xml,接下来主要讲的是txt格式的文件处理

对文件进行读写等操作会用到的函数是open(),第一个参数file是指传入你创建的文件名,其中有一个参数是mode,mode的意思是打开文件的模式

例如:在pycharm中先创建一个test.txt,写入内容:hello,welcome to my world~

1 file=open("test.txt","r")

2

3 print(file.read())

打印出来的结果是 hello,welcome to my world~

b、模式有以下几种:

r :只读,如果你要写入内容的话就会报错(not readable)

r+(尽量少用):可读可写,如果是先写再读的话,就是从头开始覆盖写,读取光标之后的内容,读写是跟着光标走的;如果是先读再写的话,就是添加在内容的末尾

w(慎重使用):只写,硬要去读的话会报错(not readable)

w+:可读可写,不管是w还是w+,如果文件存在就直接清空再重写,如果文件不存在那就新建一个文件再写

a:追加,可读可写,如果文件存在就直接追加写,如果不存在就会新建一个文件进行结果写入

a+(推荐使用):追加 可读可写

注:file文件open之后默认是r,只读模式;如果要写入中文的话,要注意编码格式,可以用encoding来指定编码格式。

c、以上讲到的内容重点要掌握的是r、a

接下来举例进行说明,例如:先创建一个名为test.txt的文件,写入内容:你好啊,好久不见~

1 file=open("test.txt","r",encoding='utf-8')

2

3 print(file.read())

打印出来的结果是 你好啊,好久不见~

注:file.read()是读取所有的内容

file.readline()是按行进行读取

file.readlines()是读取多行,返回的是一个列表

1 file_2=open("test.txt","a",encoding='utf-8')

2

3 print(file.write("今天天气好好呀"))

打印出来的结果是 你好啊,好久不见~今天天气好好呀

注:file.write()写入内容

file.writelines()写入多行内容

(五)路径处理

1、os模块

首先我们要知道路径处理会用到os模块,os模块提供了多数操作系统的功能接口函数,当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这些都会用到os模块;这个模块可以在Lib目录下找到,是一个单独的模块,所以要引用这个模块可以直接用import进行引入:import os,接下来再对os的其他用法进行例举:

(1)创建/删除文件夹/目录/文件

a、新建一个目录/文件夹

os.mkdir("目录/文件夹的名字")

b、跨级新建目录--->用/来代表路径的不同层级,跨级新建必须确保上一层级已经存在,否则新建的时候会报错

os.mkdir("上一层级的目录名/需要新建的目录名")

c、转义字符 \n \r \t

当创建文件夹或者目录的路径当中出现了转义字符,可以再加一个\、r\R来让转义字符失效,如果路径当中不存在转义字符,则路径当中的\、\\、/、//是没有区别的

d、删除目录(也是需要一级一级的来删除,否则会报错)

os.rmdir("需要删除的目录路径")

e、新建文件

open("文件名")

os.open("文件名")

f、删除文件

os.remove("要删除的文件路径")

os.removedirs("要删除的文件路径")--->递归删除

g、目录列表

os.listdir():获取当前路径下面所有的文件和目录,返回的是列表

(2)路径的获取

os.getcwd()--->获取的是当前路径

os.path.realpath(__file__):获取当前文件所在的绝对路径,具体到模块名,如果参数是__file__就说明是本文件所在的绝对路径

os.path.split(路径):拆分路径,这样可以把一个路径拆分成两部分,后一部分总是最后级别的目录或文件名,返回的是元祖格式的数据

os.path.exists():用来检验给出的路径是否存在,判断文件/文件夹是否存在,返回的是布尔值

os.path.dirname(路径):返回文件路径

os.path.basename(路径):返回文件名

os.path.isdir:判断当前文件是否是目录,返回的是布尔值

os.path.isfile:判断当前文件是否是文件,返回的是布尔值

(3)路径的拼接

a、用+进行拼接

例如:

1 import os

2 new_path=os.getcwd()+"\python"

3 os.mkdir(new_path)

b、os.path.join(a,*n):连接两个部分的路径,组成一个完整的路径

例如:

1 import os

2 new_path=os.path.join(os.getcwd(),"python","subject_1")

3 os.mkdir(new_path)

join后面的第二个参数是动态参数,可以传入多个地址进行拼接,如果要跨级拼接路径,必须确保上一级的目录是已经存在的,否则会报错

也可以把需要拼接的路径都放在一起,多个路径放在一起就必须要加斜杠或者反斜杠:

1 import os

2 new_path=os.path.join(os.getcwd(),"python\subject_1")

3 os.mkdir(new_path)

2、相对路径和绝对路径

相对路径:从当前目录开始一级一级往下读

绝对路径:从根目录开始一级一级往下读

拓展:给定一个路径,请打印出所有的路径(直到这个路径下没有目录为止) 思路:递归函数

1 import os

2 for path in os.listdir(os.getcwd()) :

3 if os.path.isdir(path):

4 os.listdir(os.path.join(os.getcwd(),path))

5 print("{0}还需要进一步处理".format(path))

6 else:

7 print("该路径已经穷尽了",os.path.join(os.getcwd(),path))

3、异常处理

a、 异常:你在运行代码的过程中遇到的任何错误,带有error字样的都是异常

异常处理:我们对代码中所有可能会出现的异常进行的处理

初级异常处理:主要处理的是某个错误,某种类型的错误或者是只要有错误就进行抓取

进一步的异常处理:不仅对错误进行抓取,而且会采取措施

b、标准异常

BaseException 所有异常的基类

SystemExit 解释器请求退出

KeyboardInterrupt 用户中断执行

Exception 常规错误的基类

StopIteration 迭代器没有更多的值

GeneratorExit 生成器发生异常来通知退出

StandardError 所有数值计算错误的基类

FloatingPointError 浮点计算错误

OverflowError 数值计算超出最大限制

ZeroDivisionError 除零

AssrttionError 断言语句失败

AttributeError 对象没有这个属性

EOFError 没有内建输入,到达EFO标记

EnvrionmentError 操作系统错误的基类

IOError 输入/输出操作失败

OSError 操作系统错误

WindowsError 系统调用失败

ImportError 导入模块/对象失败

LookupError 无效数据查询的基类

IndexError 序列中没有此索引

等等等等等等

c、语法

try......except Exception as e......

try......except....finally..... finally的作用:不管有没有犯错都会执行

try.....except.....else....(不常用)跟try下面的代码是一起的,如果try下面的代码没有犯错,else就会执行,反之则不会执行。

例如:

1 import os

2 try: # 警察

3 os.mkdir ("Alisa") # 嫌疑人

4 except Exception as e: # 警力出动 把错误抓起来 存到变量e里面去

5 print ("抓到你了")

6 print("你犯的错是{0}".format(e))

7 file=open("error.txt","a+",encoding="utf-8")

8 file.write(str(e))

9 file.close()#关闭文件

10 print ("啦啦啦啦")

打印出来的结果是:啦啦啦啦

例如:

1 import os

2 try:

3 os.rmdir("Alisa/vict")

4 except Exception as e:

5 print("你犯的错是{0}".format(e))

6 file=open("error.txt","a+",encoding='utf-8')

7 file.write(str(e))

8 file.close()

9 finally:

10 print("我还是会执行的呀呀呀呀呀")

打印出来的结果是:我还是会执行的呀呀呀呀呀

再例如:

1 import os

2 try:

3 os.rmdir("Alisa/vict")

4 except Exception as e:

5 print("你犯的错是{0}".format(e))

6 file=open("error.txt","a+",encoding='utf-8')

7 file.write(str(e))

8 file.close()

9 else:

10 print("我还是会执行的呀呀呀呀呀")

打印出来的结果是:我还是会执行的呀呀呀呀呀

以上,第四部分到此结束~

python操作系统接口错误_Python-接口自动化(四) - 许小猪 - 博客园相关推荐

  1. python个人网站开发_python 全栈开发,Day81(博客系统个人主页,文章详情页)

    一.个人主页 随笔分类 需求:查询当前站点每一个分类的名称以及对应的文章数 完成这个需求,就可以展示左侧的分类 它需要利用分组查询,那么必须要会基于双下划线的查询. 基于双下划线的查询,简单来讲,就是 ...

  2. swagger 接口参数顺序_Swagger常用参数用法 - mao2080 - 博客园

    别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处: http://www.cnblogs.com/ ...

  3. python 自动输入密码登陆程序_Python 使用selenium实现自动登录博客园

    需要做的准备: 本文章是使用Chrome,所以需要Chormedriver.exe,具体的下载过程可以百度查到 Selenium是一种自动化测试工具,能模拟浏览器的行为,所以今天我就模拟一下浏览器登陆 ...

  4. python的整数取反_整数取反 - yunduoyun - 博客园

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1].请根据这个假设,如 ...

  5. [持续更新中]博客园开放api、还有知乎、V2EX开放接口

    最新整理,持续更新ing- 博客园开放api 博客服务接口 http://wcf.open.cnblogs.com/blog/help 新闻服务接口 http://wcf.open.cnblogs.c ...

  6. 一个可编辑与新增博客园文章的 Python 脚本

    我的个人独立博客是基于 Hexo 搭建的,因为小站,Google 搜索引擎收录文章比较慢,还搜不到 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻 ...

  7. python贴吧发帖脚本-一个发布文章到博客园的 Python 脚本

    我的个人独立博客是基于 Hexo 搭建的,因为小站,Google 搜索引擎收录文章比较慢,还搜不到 为了解决这个问题,希望把文章也顺便发布到博客平台博客园上.但不想每次手动复制粘贴,打算利用脚本实现, ...

  8. python绕过验证码登录_python接口自动化(十三)--cookie绕过验证码登录(详解)...

    简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加cookie的方式绕过验证码.(注意:并不是所有的 ...

  9. 推荐一部python教程_Python爬虫入门教程:博客园首页推荐博客排行的秘密

    1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首 ...

  10. python基础论文_Python基础 - 文章分类 - rwwh - 博客园

    文章分类 - Python基础 摘要:参考 https://www.cnblogs.com/yuanchenqi/articles/5722574.html https://www.cnblogs.c ...

最新文章

  1. 算法导论6.1-2习题解答
  2. 【版本工具】SVN-E155036 Working copy ... is too old Please see the ‘svn upgrade‘ command
  3. uboot分析之bootm_start
  4. SAP 电商云 Spartacus Checkout 端到端测试
  5. Linux mysql 登录 2002,Linux 下 Mysql error 2002 错误解决
  6. MANIFEST.MF的用途(转载)
  7. HDOJ水题集合5:杂题
  8. 提前观摩打二字计算机英语,英语口语国赛规划.doc
  9. 怎么用python扫描主机_python 扫描内网存活主机
  10. 上海交大计算机系分数线2019,2019年上海部分高校各专业录取分数线汇总|附2019上海交通大学上海生源情况!...
  11. b站修改密码服务器错误,提示账号或者密码错误,无法正常登陆
  12. 跟键盘在一起时间比女朋友还长? 程序员如何选好一块专属键盘?
  13. Android 开发技术周报
  14. unity, AnimatorCullingMode踩坑
  15. MATLAB regress命令
  16. 通信原理简明教程 | 物联网通信技术简介
  17. matlab 画 带虚部,MATLAB1:求实部、虚部、模和幅角的运算
  18. 选下拉框的的值对应上传相应的图片_如何在excel中实现,选择下拉菜单某一项,该表格中就出现选项对应的数据?(excel表格制作选择数据)...
  19. java循环购物车结算系统,购物车js代码_JS实现购物车商品列表结算功能代码
  20. 树莓派基础实验33:TCRT5000红外循迹传感器实验

热门文章

  1. 什么是TOC约束理论以及TOC系统业务流程
  2. 范浩强树的学习历程,同时附加一个例题HDU4585shaolin
  3. 国内优秀开源镜像站汇总
  4. 用计算机编程解决土方调配,LINGO在土方调配计算问题应用.doc
  5. 颜色代码大全 - RGB颜色查询对照表
  6. 服务器中的虚拟化是什么意思,虚拟化是什么意思
  7. Learning Modality-Specific Representation with Self-Supervised Mulit-Task Learning for MSA
  8. PowerApps初体验,低代码快速搭建一套五一休假报备管理系统(一)
  9. PowerApps 社区计划:供个人使用的免费开发环境
  10. Word2007中快速插入分隔线