文件 课件- 高中信息技术浙教版(2019)必修1 .pptx
,10、文件,3.2 Python语言程序设计,Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。open(file, mode=r),读和写文件,filen:包含了你要访问的文件名称的字符串值。mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。,完整的语法格式为:open(file, mode=r, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)参数说明:file: 必需,文件路径(相对或者绝对路径)。mode: 可选,文件打开模式buffering: 设置缓冲encoding: 一般使用utf8errors: 报错级别newline: 区分换行符closefd: 传入的file参数类型opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。,读和写文件,读和写文件,mode 参数有:,默认为文本模式,如果要以二进制模式打开,加上 b 。,读和写文件,读和写文件,以下实例将字符串写入到文件 foo.txt 中:# 打开一个文件f = open(/tmp/foo.txt, w)f.write( Python 是一个非常好的语言。n是的,的确非常好!n )# 关闭打开的文件f.close(),第一个参数为要打开的文件名。第二个参数描述文件如何使用的字符。 mode 可以是 r 如果文件只读, w 只用于写 (如果存在同名文件则将被删除), 和 a 用于追加文件内容; 所写的任何数据都会被自动增加到末尾. r+ 同时用于读写。 mode 参数是可选的; r 将是默认值。,读和写文件,此时打开文件 foo.txt,显示如下:$ cat /tmp/foo.txt Python 是一个非常好的语言。是的,的确非常好!,file对象的方法,file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:,f.read(),为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。,以下实例假定文件 foo.txt 已存在(上面实例中已创建):# 打开一个文件f = open(/tmp/foo.txt, r)str = f.read()print(str)# 关闭打开的文件f.close(),执行以上程序,输出结果为:Python 是一个非常好的语言。是的,的确非常好!,假设已经创建了一个称为 f 的文件对象。,f.readline(),f.readline() 会从文件中读取单独的一行。换行符为 n。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。,# 打开一个文件f = open(/tmp/foo.txt, r)str = f.readline()print(str)# 关闭打开的文件f.close()执行以上程序,输出结果为:Python 是一个非常好的语言。,f.readlines(),f.readlines() 将返回该文件中包含的所有行。如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。,# 打开一个文件f = open(/tmp/foo.txt, r)str = f.readlines()print(str)# 关闭打开的文件f.close()执行以上程序,输出结果为:Python 是一个非常好的语言。n, 是的,的确非常好!n,f.readlines(),另一种方式是迭代一个文件对象然后读取每行:# 打开一个文件f = open(/tmp/foo.txt, r)for line in f: print(line, end=)# 关闭打开的文件f.close()执行以上程序,输出结果为:Python 是一个非常好的语言。是的,的确非常好!这个方法很简单, 但是并没有提供一个很好的控制。 因为两者的处理机制不同, 最好不要混用。,f.write(),f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。,# 打开一个文件f = open(/tmp/foo.txt, w)num = f.write( Python 是一个非常好的语言。n是的,的确非常好!n )print(num)# 关闭打开的文件f.close()执行以上程序,输出结果为:29,f.write(),如果要写入一些不是字符串的东西, 那么将需要先进行转换:# 打开一个文件f = open(/tmp/foo1.txt, w)value = (, 14)s = str(value)f.write(s)# 关闭打开的文件f.close()执行以上程序,打开 foo1.txt 文件:$ cat /tmp/foo1.txt (, 14),f.close(),在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位。当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。 f.close() f.read()Traceback (most recent call last): File , line 1, in ?ValueError: I/O operation on closed file当处理一个文件对象时, 使用 with 关键字是非常好的方式。在结束后, 它会帮你正确的关闭文件。 而且写起来也比 try - finally 语句块要简短: with open(/tmp/foo.txt, r) as f:. read_data = f.read() f.closedTrue,