python 中的文件读写操作 and 例题

本文详细介绍了Python中文件操作的基本原理,包括open()函数的使用方法,各种模式(r, w, a, rb+, wb+等)的应用,以及文件的读写、追加、读取图片和视频等操作实例。通过实例演示,帮助读者掌握文件操作的核心技巧。
摘要由CSDN通过智能技术生成

一、概述

        在文件的读写操作中,python是相对容易学的,python对文件进行操作只需要使用open()创建一个file流对象,用这个对象对文件进行读和写操作。open()有两个参数,一个是url是必须的,一个是mode非必须的,不填默认为读文件。

二、示例

        使用 open() 创建一个可以操作的文件对象,语法格式如下:

        file = open('url',[mode='rt'])        open() 有两个参数,url(必填) 和 mode(选填)

                url : 填写一个要进行读操作的文件路径

                mode:如下

+打开一个文件进行更新(可读可写)
t文本模式(默认)
r以只读方式打开文件(默认)
r+打开一个文件用于读写。文件指针将会放在文件的开头
b二进制模式
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写

x写模式,新建一个文件,如果该文件已存在则会报错

 1、 使用 open() 创建文件对象

file1 = open('../../python笔记1.txt')
        # open : 一般填写两个参数,url 和 mode
        # url : 填写一个要进行读操作的文件路径
        # mode :
        #           r : 只读模式
        #           w : 文件不存在时创建文件进行写,文件存在则会覆盖文件原有数据进行写操作
        #           a : 打开文件见开始光标移动到末尾进行追加内容
        #           b : 二进制模式(可与读写模式一同使用)
        #           + : 可读可写模式 (可与其它的模式组合使用)
        #           如果不填默认 : 以字符类型进行读操作
        # 操作完有进行关闭流,我们向文件写数据时,数据会先放在缓存区内,当我们关闭文件流时,如果文件还未写完,缓存区内的数据会先写到文件中再关闭

file1.close()

 2、文件的写操作 --> write()

file2 = open('../../python笔记2.txt', 'a')  # 进行写操作
# .. 表示上一级目录
# 准备要写入的内容
write_test = '''
    黄鹤楼送孟浩然之广陵
         李白 唐
故人西辞黄鹤楼,烟花三月下扬州。
孤帆远影碧空尽,唯见长江天际流。
'''
count = file2.write(write_test)  # 一次性写入 并且返回写入的字符数量
print(count)  # ---> 64
file2.writelines(write_test)  # 只有将带有格式的内容作为参数写入才会换行
file2.writelines([1,2,3,4,5,6,7])  # 将整个列表依次写入,不换行
file2.writelines('a\n','b\n','c\n')  # 想要换行只能自己加上 \n
file2.close()

  3、文件的读操作 --> read()

file3 = open('../../python笔记2.txt', 'r')  # 进行读操作
date = file3.read()  # 读取所有数据,读取完后光标在最后。 可填写size参数,读取size个字符
print(date)
date1 = file3.readline()  # 每读取一行光标向下移动一行,当没有数据可读时返回空字符串。可填写size参数,读取size个字符
print(date1 + 'end')
date_list = file3.readlines()  # 读取所有,以每行分隔为一个元素存储在列表中
print(date_list)
file3.close()

 4、读取图片或者视频时,要使用 'rb' 参数,使用with时不不需要进行 colse(),程序会自动关闭

with open('文件操作/111.jpg', 'rb') as r_jpg:
    with open('文件操作/111_1.jpg', 'wb') as w_jpg:
        w_jpg.write(r_jpg.read())
        print('copy完成')
# 通过二进制的方式,就可以对视频流或者图片流进行拷贝了


三、相关方法的介绍

file.stat()返回所有文件的属性
file.tell()  返回文件当前位置
file.seek()移动文件读取指针到指定位置  
file.flush() 刷新文件,将缓冲区的数据立刻写到文件中
file.write()将字符串写入文件,返回写入的长度
file.listdir()返回path目录下的文件和目录列表
file.remove()删除指定的文件
file.rename()

重写文件名或目录名

file.writelines()向文件写入一个序列字符串列表
file.read([size])从文本读取指定字符,不填参数默认读取全部
file.readline([size])一行一行的从文件中读取数据,不填参数表示读取所有
file.readlines([size])读取所有,返回列表

四、自测题目

1、创建文件test.txt,文件一共1000行,每行存放一个区间在1~100之间的随机整数。

2、在当前目录新建一个目录 img ,里面包含100个后缀为 .png 的文件,100个文件名各不相同(由此list['1','2','3','4','5','a','b','c','d','e','f','g'] 随机组合排列为 XXXX.png)

3、将当前img目录所有以 .png 结尾的文件改为后缀为 .jpg

4、生成 100 个 MAC 地址并且写入到文件中,MAC地址前6位(16进制)为 01-AF-3B

例:        01-AF-3B-xx-xx-xx 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值