今天主要讲讲文件读写及异常处理。

一.文件操作

1.1 文件的创建及读

  打开文件 open 函数  open(file,[option])

  file 是要打开的文件  option是可选择的参数文件的打开模式,常见有 mode 等

  文件的打开模式

    r 只读模式,文件不存在时会报错。
    w 写入模式,文件存在会清空之前的内容,文件不存在则会新建文件。
    x 写入模式,文件存在会报错,文件不存在则会新建文件。
    a 追加写入模式,不清空之前的文件,直接将写入的内容添加到后面。
    b 以二进制模式读写文件,wb,rb,ab。
    + 可读写模式,r+,w+,x+,a+,这几种模式还遵循了r,w,x,a的基本原则。

    例如:

 f=open('fangfang.txt','r')
f=open('fangfang.txt','x')
f=open('fangfang.txt','r+') #读取文件的相对路径,即当前文件同一级别的文件
f=open(r'F:\潭州教育python\学习笔记\笔记\Python基础\fangfanf1.txt','w') #读取文件的绝对路径,这里要注意去掉转义字符 r''

1.2 文件的读取

  f.read(size)  读取文件的内容,将文件的内容以字符串形式返回。
    size是可选的数值,指定字符串长度,如果没有指定size或者指定为负数,就会读取并返回整个文件。当文件大小为当前机器内存两倍时就会产生问题,反之

    就尽可能大的size读取和返回数据,如果到了文件末尾,会返回空字符串。
  

  f.readline() #从文件中读取单独一行。
    字符串结尾会自动加上一个换行符\n,只有当文件最后没有以换行符结尾时,这一操作才会被忽略,这样返回值就不会有混淆。如果返回空字符串,表示到

    达率文件末尾,如果是空行,就会描述为\n,一个只有换行符的字符串。

  f.readlines() #一次读取所有,返回一个列表,列表的元素为文件行的内容。

    可以通过列表索引的方式将文件的每一行的内容输出。
    可以通过for循环迭代输出每一行的信息。

1.3.文件的写入

  f.write() #将要写入的内容以字符串的形式通过write方法写入文件中。
  f.writelines() #括号里必须是由字符串元素组成的序列。

1.4.保存和关闭

  f.flush()在读写模式下,当写完的数据想要读取出来时,要先缓存区的内容保存到文件当中。

  f.close() 关闭文件。对一个已经关闭的文件进行操作会报错。

1.5光标位置

  f.tell() 返回光标在文件中的位置。
  f.seek(offset,from) #常用 f.seek(0) 返回起始位置
  在文件中移动文件指针,从from(0代表起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节。
  常用 f.seek(0,0) 返回起始位置。 其他了解一下

1.6查看文件信息
  closed 查看文件是否已经关闭,返回布尔值。
       mode 返回文件打开模式。
       name 返回文件名。

1.7.with 形式打开文件,里面的语句执行完后会自动关闭文件

  with open('文件名') as f:

    f.read()
二.异常语法

 try:
a=1
except NameError:
print('我有错')
except TypeError:
print('其实我错了')
except Exception:
print('你们都没错,我错了')
else:
print('啊,代码正确呀')
finally:
print('不管了,我要执行')
 try:
suite1 #测试语句块
except exception1:
suite2 #如果测试语句suite1中发生exception1异常时执行
except (exception2,exception3):
suite3 #如果测试语句suite1中发生元组中任意异常时执行
except exception4 as reason: #as把异常的原因赋值给reason
suite4 #如果测试语句suite1发生exception4的异常时执行
except:
suite5 #如果测试语句suite1发生异常在所列出的异常之外时执行
else:
suite5 #如果测试语句块suite1中没有发生异常时执行
finally:
suit6 #不管测试语句suite1中又没有发生异常都会执行

  注意:中间的except,else,finally都是可选的,但至少有一个,不然try就没有意义了,根据实际中的需求来选择。

  所有错误类型都继承自BaseException
  https://docs.python.org/3/library/exceptions.html#exception-hierarchy

  注意:如果抛出父类异常,在子类不会再获取,如下:

 try:
fun()
except Exception as e:
raise Exception
except ImportError as e:
raise ImportError
finally:
pass

  在上面的例子中,下面的ImportError就不会被抛出,因为ImportError继承Exception,但是可以把Exception放在后面是可以的

  e可以得到系统给出的报错信息
'

assert #断言
  测表示式,其返回值为假,就会触发异常
  assert 1==1 #没有返回值

  assert 1==2 #返回AssertionError

 

 

 

Python基础_文件的的处理及异常处理的更多相关文章

  1. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  2. 第二篇:python基础之文件读写

    python基础之文件读写   python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使 ...

  3. 七. Python基础(7)--文件的读写

    七. Python基础(7)--文件的读写 1 ● 文件读取的知识补充 f = open('file', encoding = 'utf-8') content1 = f.read() content ...

  4. python基础_格式化输出(%用法和format用法)(转载)

    python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制%d -- dec 十进制%x -- hex 十六进制 &g ...

  5. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  6. 【穿插】Python基础之文件、文件夹的创建,对上一期代码进行优化

    在上一期妹子图的爬虫教程中,我们将图片都保存在了代码当前目录下,这样并不便于浏览,我们应该将同一个模特的图片都放在一个文件夹中. 今天我们就简单讲一下Python下如何创建文件.文件夹,今后就可以用上 ...

  7. python基础之文件处理

    读和写文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...

  8. Python基础、文件处理

    一.概述 Python中操作文件是通过file对象来处理的,步骤: 指定文件的路径.操作的模式 对文件进行操作,读或写操作 关闭文件对象 f = open( '文件路径','访问模式') # 打开文件 ...

  9. python基础4文件操作

    在磁盘上读取文件的 功能都是由操作系统来实现的,不允许普通的程序直接操作磁盘,所以读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据( ...

随机推荐

  1. Xcode断点 中断不正常 每次断点都进入汇编

    该问题是由于XCode的设置引起,其修改方法是: 选择Xcode菜单 -> Debug ->Debug workflow,将Alway show Disassembly前面的勾去掉就好了.

  2. coredump故障分析

    如果一个程序运行3天后才会出错,这个时候 难道需要我们一直用GDB调试程序3天吗? 这个时候我们就需要使用到core  dump: 1.Core Dump又叫核心转存.当程序在运行过程中发生异常, 这 ...

  3. qt的编译

    cp qt-everywhere-opensource-src-5.5.0.tar.gz /opt/qt/2.1 解压qt源码 sudo tar xzf qt-everywhere-opensourc ...

  4. smallcorgi/Faster-RCNN_TF训练自己的数据

    熟悉了github项目提供的训练测试后,可以来训练自己的数据了.本文只介绍改动最少的方法,只训练2个类, 即自己添加的类(如person)和 background,使用的数据格式为pascal_voc ...

  5. alertifyjs

    <%@ page contentType="text/html; charset=UTF-8"%> <!DOCTYPE html PUBLIC "-// ...

  6. Nginx日志分析及脚本编写

    在我们日常的运维中,当Nginx服务器正常运行后,我们会经常密切关注Nginx访问日志的相关情况,发现有异常的日志信息需要进行及时处理. 那今天我将跟大家一起来研究和分析Nginx日志,nginx默认 ...

  7. [解决问题] E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)

    E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? 解决办法: 1.终端输 ...

  8. 几种优化ajax的执行速度的方法

    1.尽量使用局部的变量,而不使用全局变量: 2.优化for循环 3.尽量少用eval,每次使用eval都需要消耗大量的时间: 4.将DOM节点放在文档上. 5.尽量减少点好(.)操作符号的使用

  9. Nginx限流办法

    Nginx 限流 电商平台营销时候,经常会碰到的大流量问题,除了做流量分流处理,可能还要做用户黑白名单.信誉分析,进而根据用户ip信誉权重做相应的流量拦截.限制流量.Nginx自身有的请求限制模块ng ...

  10. 第二十二章 Django会话与表单验证

    第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...