Python 从入门到实战27(文件的基本操作)

        我们的目标是:通过这一套资料学习下来,通过熟练掌握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)#写入后的内容

如上图所示的读出的内容增加了。

今天先写学习到这里了,每天进步一点点。明天也要加油啊!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立黄昏粥可温

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值