我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们讨论了包(package)的相关知识。今天我们将学习一下文件的相关基础操作的知识。
python 内置了文件(file)对象。在使用对象时,首先可以通过内置的open()方法创建一个文件对象,然后通过对该对象提供的方法进行一些基本文件操作。例如write()方法写入文件,使用close()方法关闭文件,read()方法读文件。
1、创建和打开文件
1)语法说明
创建文件或者打开文件,需要使用open()函数实现。语法如下:
file = open(filename,mode,buffering, encoding)
参数说明:
file -----为被创建的文件对象;
filename-----要创建或者打开的文件名称,若是要打开的文件与当前文件在同一目录下,写文件名即可,否在需要把文件路径加上;
mode ------可选参数,用于指定文件的打开模式。
buffering -----可选参数,用于指定读写文件的缓冲模式。如果值为0,则表示不缓存;若是值为1表示缓存,如果值大于1,则表示缓存区大小。默认时缓存模式
encoding-----文件的编码方式,可选参数,默认为None。
mode 的参数值及其说明:
参数值 | 说明 | 注释 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式 | 文件必须存在 |
rb | 以二进制格式打开一个文件且是只读模式。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 | 文件必须存在 |
r+ | 打开一个文件用于读写。可以读取文件,也可以写入新的内容来覆盖原有的内容(文件指针将会放在文件的开头。) | 文件必须存在 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 | 文件必须存在 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 | |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 | |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 | |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 | |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 | |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 | |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 | |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
2)打开文件举例
若是要打开的文件不存在创建一个新文件,开始是空的。
如:
def main():
file = open("test_demo",'r')
print(file)
编写上面的代码,发现报错了:
因为打开方式是“r”,只读模式打开,不会新建新的文件。
想要找不到文件就新建文件,可以使用“w”方式打开,如下:
这样就没有报错了,可以看到test_demo的文档,并且大写0kb,说明是空的。
3)以二进制形式打开文件
如我们当前目录下有保存图片touxiang.jpg,我们就可以使用二进制方式去打开。
def main():
picture = open("touxiang.jpg","rb") #二进制方式打开图片
print(picture)
输出参考:
打开文件后就生成该图片的对象,可以再使用第三方模块进行处理了。
2、关闭文件
打开文件以后要及时关闭,以免对文件造成不必要的破坏。
操作也比较简单,close()方法来实现: file.close()
接着上面的例子,进行文件关闭:
def main():
picture = open("touxiang.jpg","rb")
print(picture)
picture.close() #关闭图片文件
3、打开文件时使用with 语句方法
为了更加方便地管理文件的打开和关闭,Python提供了with语句,可以自动处理文件的关闭操作。这种方式更加安全和简洁。
语法格式如下:
with expression as target:
with-body
参数说明:
expression----用于指定一个表达式,这里可以是打开文件的open()函数
target ----用于指定一个变量,并将expression 的结果保存在该变量中
with-body----用于指定with 语句体,其中可以是执行with语句后相关的一些操作语句。如果不想执行任何语句,可以pass语句
举例说明:
def main():
with open("test_data.txt","r") as test_data_file: #打开测试数据的文件
test_data = test_data_file.read() #读取文件
print(test_data)
参考结果:
4、写入文件内容
写入文件内容,使用write()函数,如file.write(string).
1)覆盖写入内容
举例说明,在新的文件内新增内容:
def main():
with open("test_demo.txt", 'w') as test_demo_file: #打开文件,不存在就新建,有就覆盖写入
test_demo_file.write("tomorrow is another day!") #写入内容
with open("test_demo.txt", 'r') as test_demo_file: #需要重新打开文件
test_demo = test_demo_file.read()
print(test_demo)#写入后的内容
输出参考:可以看到文件中写入了这句话。
2)追加写入内容
上面的例子,增加写入内容,
def main():
with open("test_demo.txt", 'a') as test_demo_file: #追加内容使用打开模式“a”
test_demo_file.write("tomorrow is another day!")
with open("test_demo.txt", 'r') as test_demo_file:
test_demo = test_demo_file.read()
print(test_demo)#写入后的内容
如上图所示的读出的内容增加了。
今天先写学习到这里了,每天进步一点点。明天也要加油啊!