对于文件来说,通常的操作流程为:
√打开文件,创建对象
√读取文件内容,对内容进行写入/修改/删除等操作
√关闭文件
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)
如果需要向文件中写入内容,在打开文件时就需要指定文件的打开模式为写模式,根据不同的开发需求选取
不同的写入模式:
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
文件操作一般遵循“文件打开-》文件内容的读写-》文件的关闭”
file.close
保证了所作的任何修改确实保存到了文件之中
with
可以避免忘记了关闭文件的操作file.close
with open(‘test1.txt‘,‘r‘) as f: f.readline()
异常处理结构不仅能够提高代码的健壮性,而且也提高了代码的容错性,从而不会因为使用者错误输入造成系统崩溃,也可以通过异常处理结构为使用者提供更加友好的错误提示。在python开发过程中引发程序异常错误的原因有很多中,较为常见的有:除0、下标越界等。 Python中提供了很多不同形式的异常处理结构,其基本利用思路都是:先尝试执行代码,再进行处理可能发生的错误。
当try子句代码块执行异常并且被except子句捕获,则执行except子句的代码块。
mathScore = input(‘请输入数学成绩‘) try: mathScore=int(mathScore) if(0<=mathScore<=100): print(‘输入的成绩为‘,mathScore) else: print(‘输入的成绩有误‘) except Exception as e: print(‘输入的数据有误‘)
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.‘)
在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