009集:open( )、write( )、close( )函数读写文件实例—python基础入门实例

发布时间:2024年01月12日

????????一般来说,计算机文件可以分为两类:文本文件和二进制文件。大多数Windows文本文件使用ANSI、OEM或者Unicode编码。常见的文本文件有:大多数Windows文本文件使用ANSI、OEM或者Unicode编码。常用的文本文件格式有ASCII、MIME、*.txt等,这些格式允许系统终端或者简单的文本编辑器接受并显示文本内容,另外还有:.docx:

.csv:这是一种以逗号分隔的文本文件格式,用于存储表格数据,可以被电子表格程序(如Microsoft Excel)读取和编辑。
.xml:这是一种可扩展标记语言文件格式,用于存储和传输结构化数据,常被用于配置文件、数据交换等。
.json:这是一种JavaScript对象表示法文件格式,用于存储结构化数据,广泛用于Web应用程序的数据交换。

首先讲下二进制文件与文本文件区别:

????????在文本文件的内部以字符形式存储数据,字符是有编码的,例如GBK (简体中文) 、UTF-8等;在二进制文件的内部以字节形式存储数据、没有编码的概念。二进制文件较为常用,例如Windows中的exe、图片 (jpg、png等),以及Word、Excel和PPT等文件。

使用文件之前要先将文件打开,这通过open()函数实现。

????????open()函数的语法如下:open(file, mode='r', encoding=None, errors=None)

open()函数中的4个常用参数,这些参 数的含义如下。

1.file参数 file参数用于表示要打开的文件,可以是字符串或整数。如果file是 字符串,则表示文件名,文件名既可以是当前目录的相对路径,也可以 是绝对路径;如果file是整数,则表示一个已经打开的文件。

2.mode参数

????????mode参数用于设置文件打开模式,用字符串表示,例如rb表示以只 读模式打开二进制文件。用于设置文件打开模式的字符串中的每一个字 符都表示不同的含义,对这些字符的具体说明如下。

t:以文本文件模式打开文件。

b:以二进制文件模式打开文件。

r:以只读模式打开文件。
w:以只写模式打开文件,不能读内容。如果文件不存在,则创建 文件;如果文件存在,则覆盖文件的内容。

x:以独占创建模式打开文件,如果文件不存在,则创建并以写入 模式打开;如果文件已存在,则引发FileExistsError异常。

a:以追加模式打开文件,不能读内容。如果文件不存在,则创建 文件;如果文件存在,则在文件末尾追加。(a不能读文件,而a+可以读文件)

+:以更新(读写)模式打开文件,必须与r、w或a组合使用,才能 设置文件为读写模式。

这些字符可以进行组合,以表示不同类型的文件的打开模式,如下 表所示。


3.encoding参数 encoding用来指定打开文件时的文件编码,默认是UTF-8编码,主
要用于打开文本文件。

4.errors参数 errors参数用来指定在文本文件发生编码错误时如何处理。推荐errors参数的取值为'ignore',表示在遇到编码错误时忽略该错误,程序会继 续执行,不会退出。

?详细参数含义如下:

  • file:要打开的文件的路径或文件名。

  • mode:文件的打开模式,可选参数,默认为'r'(只读)。

  • buffering:缓冲策略,可选参数,默认为-1。

  • encoding:文件的编码方式,可选参数,默认为None。

  • errors:编码错误处理方式,可选参数,默认为None。

  • newline:文本模式下换行符的处理方式,可选参数,默认为None。

  • closefd:表示是否在文件关闭时关闭文件描述符,可选参数,默认为True。

  • opener:用于打开文件的自定义打开器,可选参数,默认为None。

读取文件内容

一旦文件被成功打开,你可以使用不同的方法来读取文件内容:

  • read(): 读取整个文件的内容。

  • readline(): 逐行读取文件内容。

  • readlines(): 以列表形式读取文件的所有行。

3. 写入文件内容

如果以写入模式打开文件,你可以使用write()方法来写入内容。请注意,写入模式会覆盖文件中的原有内容。

?

4. 关闭文件

在文件操作完成后,应该使用close()方法关闭文件,以释放系统资源。

pycharm中运行以下代码:

f = open('mytest.txt', 'w+')  # 若不存在文件,则新建,若存在,则覆盖。若未指定路径,文件创建在py文件所在的文件夹
f.write('hello,mytest')
print('第一步:创建mytest.txt文件,写入hello,mytest到文件')
f = open('mytest.txt', 'r+')  # 覆盖模式,运行时关闭txt文件
f.write('''
        春晓
     春眠不觉晓,
     处处闻啼鸟。
     夜来风雨声,
     花落知多少。
''')
print('第二部,打开mytest,覆盖内容')
f = open('mytest.txt', 'a')  # 文件末尾追加模式
f.write('此行为a追加模式追加的内容')
print('第三步:追加模式')
fname = r'd:\mytest2.txt'#路径需要采用r''模式,或双反斜杠,或斜杠(/)
f1 = open(fname, 'a+')
f1.write('此文件目录在D盘\n')#若运行多次,文件内则存在多行文字
print('第四步:指定路径创建文件')
f.close()#关闭文件,以释放系统资源。
#f1.close()

?运行结果如下

第一步:创建mytest.txt文件,写入hello,mytest到文件
第二部,打开mytest,覆盖内容
第三步:追加模式
第四步:指定路径创建文件

进程已结束,退出代码为 0

?运行结果及生成txt文件如下图所示:

?

?

文章来源:https://blog.csdn.net/yongshiqq/article/details/135543939
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。