一般来说,计算机文件可以分为两类:文本文件和二进制文件。大多数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文件如下图所示: