小甲鱼Python笔记(下)

二十八 二十九  文件

打开文件 open(文件名[,模式][,缓冲])  注意open是个函数不是方法

模式:

缓冲:

大于1的数字代表缓冲区的大小(单位是字节),-1(或者是任何负数)代表使用默认缓冲区大小

只有用flush或者close时才会更新硬盘的数据

 

三种标准的流:

输入:sys.stdin 输出:sys.stdout  错误:sys.stderr

用list()让文件成为一个列表,每一行是一个元素

用f.seek(0,0)还原文件指针到起始位置

用for读取文件中的每一行

 

三十  os模块和os.path模块

Python os模块包含普遍的操作系统功能,注意括号中需要使用字符串

1.getcwd()

返回当前工作目录

2.chdir(path)

改变工作目录

3.listdir(path='.')

列举指定目录中的文件名('.'表示当前目录,'..'表示上一级目录)

4.mkdir(path)

创建单层目录,如该目录已存在抛出异常

5.makedirs(path)

递归创建多层目录,如该目录已存在抛出异常,注意:'E:\\a\\b'和'E:\\a\\c'并不会冲突

6.remove(path)

删除文件

7.rmdir(path)

删除单层目录,如该目录非空则抛出异常

8.removedirs(path)

递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常

9.rename(old, new)

将文件old重命名为new

10.system(command)

运行系统的shell命令

 

以下函数没有参数

11.os.curdir

指代当前目录('.')

12.os.pardir

指代上一级目录('..')

13.os.sep

输出操作系统特定的路径分隔符(Win下为'\\',Linux下为'/')

14.os.linesep

当前平台使用的行终止符(Win下为'\r\n',Linux下为'\n')

15.os.name

指代当前使用的操作系统(包括:'posix', 'nt', 'mac', 'os2', 'ce', 'java')

 

os.path模块

1.basename(path)

去掉目录路径,单独返回文件名

2.dirname(path)

去掉文件名,单独返回目录路径

3.join(path1[, path2[, ...]])

将path1, path2各部分组合成一个路径名

4,split(path)

分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在

5.splitext(path)

分离文件名与扩展名,返回(f_name, f_extension)元组

6.getsize(file)

返回指定文件的尺寸,单位是字节

7.getatime(file)

返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

8.getctime(file)

返回指定文件的创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

9.getmtime(file)

返回指定文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

 

以下为函数返回 True 或 False

10.exists(path)

判断指定路径(目录或文件)是否存在

11.isabs(path)

判断指定路径是否为绝对路径

12.isdir(path)

判断指定路径是否存在且是一个目录

13.isfile(path)

判断指定路径是否存在且是一个文件

14.islink(path)

判断指定路径是否存在且是一个符号链接

15.ismount(path)

判断指定路径是否存在且是一个挂载点

16.samefile(path1, paht2)

判断path1和path2两个路径是否指向同一个文件

 

三十一  pickle模块

以二进制保存数据

三步走:打开文件,用pickle.dump()方法将数据放入文件,关闭文件

1 import pickle
2 my_list = [1,2,'老王',['abc']]
3 pickle_file = open('my_list.pkl','wb') #文件名后缀无所谓
4 pickle.dump(my_list,pickle_file)
5 pickle_file.close()

 

这样文件夹中就保存了my_list.pkl文件,(查询当前目录是用 import os   os.getcwd())

读取数据

打开文件,调用pickle.load()方法

pickle_file = open('my_list.pkl','rb')
list2 = pickle.load(pickle_file)
print(list2)

 

三十二 三十三  异常

常见异常类型:

AttributeError:属性错误,特性引用和赋值失败时会引发属性错误
NameError:试图访问的变量名不存在
SyntaxError:语法错误,代码形式错误
Exception:所有异常的基类,因为所有python异常类都是基类Exception的其中一员,异常都是从基类Exception继承的,并且都在exceptions模块中定义。
IOError:一般常见于打开不存在文件时会引发IOError错误,也可以解理为输出输入错误
KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误
IndexError:索引错误,使用的索引不存在,常索引超出序列范围,什么是索引
TypeError:类型错误,内建操作或是函数应于在了错误类型的对象时会引发类型错误
ZeroDivisonError:除数为0,在用除法操作时,第二个参数为0时引发了该错误
ValueError:值错误,传给对象的参数类型不正确,像是给int()函数传入了字符串数据类型的参数。

 

捕获异常

try语句一旦被检测出异常,剩下的语句将不会被执行

几种搭配:

1.try except

1 try:
2     sum = 1/0
3 except ZeroDivisionError:
4     print('出错')

 

可以指明出错原因:

1 try:
2     sum = 1/0
3 except ZeroDivisionError as reason:
4     print('出错,错误原因:',str(reason))

 

可以用多个except语句:

1 try:
2     f = open("nofile.txt")
3     sum = 1/0
4 except IOError as reason:
5     print('出错,错误原因:',str(reason))
6 except ZeroDivisionError as reason:
7     print('出错,错误原因:',str(reason))

 

可以用一个元组捕获多个异常:

1 try:
2     sum = 1/0
3     f = open("nofile.txt") 
4 except (IOError,ZeroDivisionError) as reason:
5     print('出错,错误原因:',str(reason))

 

用while True 和 else 组合,else后的语句在没有异常的情况下才执行,注意缩进,输入错误后会重新输入直到正确:

 1 while True:
 2     try:
 3         x = int(input("input first num"))
 4         y = int(input("input first num"))
 5         z = x/y
 6         print(z)
 7     except ZeroDivisionError:
 8         print("error,try again")
 9     else:
10         break

 

不管try语句中是否发生异常,finally语句后都会执行:

1 try:
2     x = int(input("input first num"))
3     y = int(input("input first num"))
4     z = x/y
5     print(z)
6 except ZeroDivisionError:
7     print("error:")
8 finally:
9     print("结束")

 

三十四  else和with

else:

if-else语句:

和各种语言相同的用法,在条件语句中,与if语句搭配使用的else语句。如果if语句的条件表达式的结果布尔值为假,那么程序将执行else语句后的代码。

elif(else-if)语句:

elif是python提供的else-if语句,它检查多个条件表达式的值是否为真,并在为真时执行特定代码块中的代码。和else一样,elif是可选的,但是要注意的是,一个if语句可以跟多个elif语句,但最后只能有一个else语句

while-else/for-else语句:

在其他语言中,除了条件语句,是不会见到else分支的,但在Python中,while和for循环中,也是可以使用else语句的。它们的工作顺序为:在循环中使用时,else语句只在循环完成后执行,也就是说,break语句也会跳过else代码块,只要循环是正常结束,而不是通过break,else语句就会执行

求素数:

 1 def fun(num):
 2     count = int(num/2)
 3     while count>1:
 4         if(num%count == 0):
 5             print("%d的最大公约数是:%d" %(num,count))
 6             break
 7         count -= 1
 8     else:
 9         print("%d是素数" %num)
10 
11 n = int(input("请输入一个整数:"))
12 fun(n)

 

执行结果:

注意:Python中没有自增自减运算符,格式化输出多个字符要用元组的形式

try-else语句:

对于python中的错误和异常,try-except语句段,也可以和else连用,其功能和循环中的else语句没有多大区别:在try范围内没有检测到异常的时候,执行else子句。

 

with:

这个语法是用来代替传统的try...finally语法的。

with EXPRESSION [ as VARIABLE] WITH-BLOCK

1 try:
2     with open("e://1.txt",'r') as f:
3         for each_line in f:
4             print(each_line)
5 except IOError as reason:
6     print("Error:",str(reason))

 如果用finally,若是文件不存在,也要走f.close(),这样的话文件存在打开后会自动关闭

 

模块

(1)import 文件名  比如想导入tmp.py,在主程序中写import tmp,并用tmp.调用函数

(2)from 模块 import 函数(若要引用全部,写*)  在主程序中直接调用函数名

(3)import 文件名 as 别名  在主程序中用 别名. 调用函数

 

if __name__ == "__main__":

简单来说当一个文件作为模块时,在if __name__ == "__main__":语句后的内容不能被调用

原理:

当作为模块时,可见__name__并不等于__main__,所以之后的东西不会执行,也不能被调用

 

搜索路径:用列表的方式添加或删除

 

包:创建一个文件夹,文件夹中存放相应模块,文件夹的名字就是包的名字,在文件夹中创建一个__init__.py的模块文件,内容可以为空

使用包,import 包名.模块名

 

标准库

学习一个模块的方法,以timeit模块为例:

1.IDLE中F1,索引

2. IDLE中print(timeit.__doc__)查询模块说明

3. dir(timeit)查询所有用法

4. timeit.__all__查询对外接口

5. timeit.__file__查询源码路径

 

介绍timeit模块

 

爬虫

urllib

转载于:https://www.cnblogs.com/raichen/p/4778094.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux内核编译后 make: 警告:检测到时钟错误.,系统时钟 make: 警告:检测到时钟错误。您的创建可能是不完整的。...

修改Linux的时间修改Linux时间一般涉及到3个命令: date, clock, hwclockdate: 修改系统当前的时间:[root]#date –s ‘2005/12/5 10:01:00系统当前的时间改成2005年12月5日,10点01分这个修改在系统重启后就…

linux服务器搭建_学linux可以做什么具体的就业方向是什么

学linux可以做什么当今世界流行的操作系统有3大类,Linux、Mac OS和Windows操作系统,Linux操作系统因其开源、免费、跨平台、良好的界面等特性,深受广大程序员们的青睐!Linux操作系统被广泛的应用于企业服务器领域,目前…

vue 给iframe设置src_vue组件中使用iframe元素

需要在本页面中展示vue组件中的超链接,地址栏不改变的方法:GoBack{{item.name}}export default {name: hello,data () {return {iframeState:false,goBackState:false,webAddress: [{name:segmentFault,link:https://segmentfault.com/a/1190000004502619},{name:博…

iOS coredata 避免添加重复数据

首先你要知道你数据中那一项是唯一的 然后对这个唯一进行现查后插的顺序进行处理 在查的时候 第一次array肯定是空的 判断array的内容为0的话先插入第一次数据 然后再做唯一那个参数是否存在 不在的话则插入数据 这样就可以避免重复数据了 就是一个逻辑的问题 之前没想通 然后今…

linux下安装两个tomcat,linux安装两个tomcat-Go语言中文社区

解压apache-tomcat-7.0.86.tar.gz,把解压后的复制一份修改/etc/profile文件:vim /etc/profile#################我添加的start######################################first tomcat######################CATALINA_BASE/root/app/apache-tomcat-7.0.86CA…

python中sn的意思_python获取内存SN编号等信息

物理机内存检查,#!/usr/bin/env python# -*-coding:UTF-8 -*-import osmemdict dict()memditail dict()#os.popen()os.system( dmidecode -t memory >./mem.txt )memstros.popen(cat ./mem.txt)mem_countos.popen("cat ./mem.txt |grep Number Of Devic…

中文域名销售平台_中国开关网.商城被搭建为南京某公司官网,这样的域名你喜欢吗?...

南京盛企电子有限公司是一个民营企业,成立于1997年6月,主要生产led广告板、薄膜开关、薄膜面板及其相类似的产品。公司拥有国内先进的制版系统、精细的丝网晒版设备、世界先进的丝网印刷机、数控恒温远红外烘道、uv固化机、模切机、激光切割机、电子产品…

linux远程虚拟桌面,2020-07-23 Linux 远程连接虚拟桌面

写在前面我的服务器为Centos7,其他 Linux 发行版可能略有差异。此方法不需要有物理显示屏。可以多用户同时登录,同一用户可以开启多个虚拟桌面。TigerVNC 安装使用这个软件提供 VNC 服务。Centos 下安装sudo yum install -y tigervnc-server用户模式开启…

kcbzps oracle_Oracle 11g DRCP配置与使用(上)

Oracle 11g推出了驻留连接池(Database Resident Connection Pool)特性,提供了数据库层面上的连接池管理机制,为应对高并发、短会话前端应用进行有益的尝试。DRCP的配置很简单,本篇中让我们一起来配置一个11g环境上的DRCP,分析其工…

2019数据安装勾选_【安装部署】esweb服务器如何单独部署

推荐指数:☆☆☆☆☆背景:在勤哲Exce服务器软件的使用过程中,有的客户并发用户数多,可将esweb服务器单独部署。具体安装步骤:首先,在一台服务器上安装除填报网站外的应用程序。双击安装包运行。点击”接受“…

linux多点触控软件测试,测试工程师日常工作中高频Linux命令

最近,一直在整理Linux这块的命令 。出发点,是在浩瀚的Linux命令和每个命令众多的参数中,挑选出一些高频的场景和命令 。加速测试从业者学习效率 & 学习精准度 。花最少的时间,学到最适用的技能 。Linux命令整理这事&#xff…

html css 前端实现消息提醒数_自学的福音,web前端学习全套视频教程+最新学习思维导图都在这里...

1、产品经理。这些是负责策划应用程序的一群人。他们会想出很多新鲜的、奇怪的、甚至是不可能实现的应用。一般来说,产品经理都追求丰富的功能。2、UI设计师。这些人负责应用程序的视觉设计和交互模拟。3、项目经理。这些人负责实际地运行和维护应用程序。4、最终用…

5233杨光--Linux第一次实验

学习计时:共14小时 读书:2小时 代码:7小时 作业:2小时 博客:3小时 一、学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命…

求序列最长不下降子序列_最长不下降子序列nlogn算法详解

今天花了很长时间终于弄懂了这个算法……毕竟找一个好的讲解真的太难了,所以励志我要自己写一个好的讲解QAQ这篇文章是在懂了这个问题n^2解决方案的基础上学习。解决的问题:给定一个序列,求最长不下降子序列的长度(nlogn的算法没法求出具体的…

cmap参数 plt_plt.imshow的参数有哪些?

plt.imshow( X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs, ) 参数:X图像数据。支持的…

安装Linux后windows在哪启动,在Linux下安装windows后解决Linux不能启动能问题

我的机器是Windows和Linux双系统,那天由于Windows用就了比较卡,就重装了一下Windows,结果导致重启后linux系统不知道到哪去了。懒得去重装Linux了,于是查找了一下资料,经过一番折腾,终于把我的Linux救回来了…

asp.net web开发步骤_WEB开发流程

1.需求确定2.分析与设计 (1)架构分析与设计 (2)业务逻辑分析 (3)业务逻辑设计 (4)界面设计3.开发环境搭建4.开发-测试-开发-测试5.文档编纂各个阶段过程都是有文档的,需求有需求的文档,设计有设计的文档,测试也有测试的文档.首先来看需求确定:需求…

Dart基础学习02--变量及内置类型

Dart基础学习02--变量及内置类型 Dart中的变量 首先看一个变量的定义和赋值 var name Bob; 在Dart中变量名都是引用,这里的name就是一个指向值为Bob的字符串的引用。 默认值 在Dart中没有初始化的变量都有一个默认值null,哪怕是int型的变量它的初始值也…

课题申报书范文_课题申报书(范文5篇)

《课题申报书》课题申报书(一):一、课题研究论证报告1.课题提出的背景与所要解决的主要问题(1)课题提出的背景第一、新的教材、新的课程越来越注重了学生学习主动性、用心性的调动。它的最大特点就是不是仅注重知识研究的结果,而是更重视研究知识的过程&…

psv黑商店pkgj最新版下载_e收银app下载安装_e收银软件最新版免费下载

e-Cashier应用程序是一种高效的收银员服务客户端应用程序。 e-Cashier的移动版本支持多种刷卡方法,使商户可以自定义订单日期,从而使每天的收入一目了然,并且从多个角度分析商店的业务状况非常实用 。特征电子收银机是一种高效便捷的收银工具…