首页 > 其他 > 详细

文件与异常处理

时间:2020-07-04 09:22:01      阅读:43      评论:0      收藏:0      [点我收藏+]

1.文件处理

对于文件来说,通常的操作流程为:

√打开文件,创建对象

√读取文件内容,对内容进行写入/修改/删除等操作

√关闭文件

1.1 创建文件对象

Python中内置了文件对象。通过open()函数制定模式打开指定文件。

open(file[, mode=’r’[, buffering=-1]],encoding=[])
?
//常见用法:
?

参数的含义如下:

(1) 参数file指定要打开或者创建的文件名称,如果该文件不存在当前目录,则需要明确指出绝对路径。

(2) 参数mode指定打开文件后的处理方式,其中包括:读模式、写模式、追加模式、二进制模式、文本模式、读写模式等。(/rw/a/b)

(3) 参数buffering指定读写文件的缓冲模式,数值0表示不缓存,数值为1表示使用行缓存模式,大于1表示缓冲区的大小,默认值为-1,二进制文件和非交互文本文件以固定大小块为缓冲单位。

(4) 参数encoding指定对文本进行编码和解码的方式。

 

文件的读取

readable():文件是否可读

# readable() 可读返回True
fileRead = open(read.txt,r)
print(fileRead.readable())
?
>>>True

 

 

read(显示数,默认全部):

#中文和英文都算一个字符,换行也会算一个字符
fileRead = open(read.txt,r,encoding=utf-8)
print(fileRead.read())

 

readlines():

#readline()只能读一行。readlines
?
>[该文件可读\n, r\n, e\n, a\n, d\n, gogogogoogogo]
?
#或以循环方式读取整个文件
for line in fileRead:
    print(line)
 

 

1.2文件的写入

如果需要向文件中写入内容,在打开文件时就需要指定文件的打开模式为写模式,根据不同的开发需求选取

不同的写入模式:

w:写入模式,如果文件已经存在,先清空文件内容;如果文件不存在,则创建文件。

x:写入模式,创建新文件,如果文件已经存在则抛出异常

a:追加模式也是写入模式的一种,不覆盖文件的原始内容。

writable():文件是否可读

# readable() 可读返回True
fileRead = open(read.txt,r)
print(fileRead.writable())
?
>>>False
?
fileRead = open(read.txt,w/a)
print(fileRead.writable())
?
>>>True

 

 

write():写的内容

fileRead = open(read.txt,w/a)
fileRead.write(gello! \n)
fileread.close
>>>True

 

 

1.3 关闭文件对象

文件操作一般遵循“文件打开-》文件内容的读写-》文件的关闭”

file.close

保证了所作的任何修改确实保存到了文件之中

with

可以避免忘记了关闭文件的操作file.close

with open(test1.txt,r) as f:
    f.readline()
 

 

 

2. 异常处理结构

异常处理结构不仅能够提高代码的健壮性,而且也提高了代码的容错性,从而不会因为使用者错误输入造成系统崩溃,也可以通过异常处理结构为使用者提供更加友好的错误提示。在python开发过程中引发程序异常错误的原因有很多中,较为常见的有:除0、下标越界等。 Python中提供了很多不同形式的异常处理结构,其基本利用思路都是:先尝试执行代码,再进行处理可能发生的错误。

 

2.1try... except...结构

当try子句代码块执行异常并且被except子句捕获,则执行except子句的代码块。

mathScore = input(请输入数学成绩)
try:
    mathScore=int(mathScore)
    if(0<=mathScore<=100):
        print(输入的成绩为,mathScore)
    else:
        print(输入的成绩有误)
except Exception as e:
    print(输入的数据有误)

 

 

2.2 try...except...else结构

try…except…else…结构进行编写。如果try代码的子句出现了异常且该异常被except所捕获则可以执行相应的异常处理代码,此时就不会执行else中的子句;如果try中的代码没有抛出异常,则执行执行else子句代码块。

?
mathScore = input(Please insert mathScore:)
try:
    mathScore=int(mathScore)
#若不能转为int型则爆出异常。
except Exception as e:
    print(insert ERROR!)
?
else:
    if(0<=mathScore<=100):
        print(mathScore:,mathScore)
    else:
        print(Out of range.)

 

 

 

2.3 try...except...finally

在try…except…finally…结构中。无论try子代码块是否正常执行,finally子句中的代码块总是会得到执行。在日常开发过程中,通常用来做清理工作,用来释放try子句中申请的资源。无论是否异常总会执行finally中的语句。

?
a = int(input(a:))
b = int(input(b:))
try:
    div = a/b
    print(div)
except Exception as e:
    print(2th cant be 0)
finally:
    print(End!)

 

 

 

文件与异常处理

原文:https://www.cnblogs.com/po1i/p/13233646.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!