08-python的文件操作-读写

简介: 08-python的文件操作-读写

01-文件的编码

文件编码

02-文件的读取操作

什么是文件?

mode常用的三种基础访问模式

"""
演示文件的读取
"""
#打开文件
f = open("E:/测试.txt","r",encoding="UTF-8")
print(type(f))

可以先在电脑的某一个盘中创建一个txt文件,可以对其进行打开,读取,其代码是UTF-8,读取其类型是

那么得到的这个文本对象,有哪些可以进行的操作呢?

读操作相关方法

在读取文件内容之前,可以先查看一下记事本的内容如下:

"""
演示文件的读取
"""
#打开文件
f = open("E:/测试.txt","r",encoding="UTF-8")
# print(type(f))
#读取文件-read(),如读取10个字节
print(f"读取10个字节的结果:{f.read(10)}")

print(f"读取全部内容的结果是:{f.read()}")#在不给参数的情况下,读取全部内容

注意:连续两次读取的话,上一次读取的内容,下一次不会再读取。

#读取文件--readLines()
lines=f.readlines()#读取文件的全部行,封装到列表中
print(f"lines对象的类型是:{type(lines)}")
print(f"lines对象的内容是:{lines}")

调用一次读取一行内容。

#打开文件
f = open("E:/测试.txt","r",encoding="UTF-8")
#读取文件--readline()
line1=f.readline()
line2=f.readline()
line3=f.readline()
print(f"第1行数据是:{line1}")
print(f"第2行数据是:{line2}")
print(f"第3行数据是:{line3}")

#打开文件
f = open("E:/测试.txt","r",encoding="UTF-8")
#for循环读取文件行
for line in f:
    print(f"每一行数据:{line}")

文件的关闭

若文件没有关闭,则这个文件会一直占用python程序,所以要关闭这个文件

#文件的关闭
f.close()

通过这种写法,可以自动完成对文件的close操作。

#with open 语法操作文件
with open("E:/测试.txt","r",encoding="UTF-8") as f:
    for line in f:
        print(f"每一行数据:{line}")

并且此时我们对这个文件进行操作时候,可以在E盘内将其删除等一系列操作。

操作汇总

课后练习-单词计数

通过Windows的文本编辑器软件,将如下内容,复制并保存到: word.txt,文件可以存储在任意位置

chengxuyuan itxuexi python
 
itxuexi python itxuexi
 
beijing shanghai itxuexi
 
shenzhen guangzhou itxuexi
 
wuhan hangzhou itxuexi
 
zhengzhou bigdata itxuexi

通过文件读取操作,读取此文件,统计itxuexi单词出现的次数

1.read(),count("itxuexi")

2.一行行的读取文件 按照空格切分,统计itxuexi的次数

#打开文件,以读取模式r打开
f=open("D:/word.txt","r",encoding="UTF-8")
#方式1:读取全部内容,通过字符串count方法统计itxuexi单词数量
content=f.read()
count=content.count("itxuexi")
print(f"itxuexi在文件中出现了:{count}次")
#最后关闭文件
f.close()

#打开文件,以读取模式r打开
f=open("D:/word.txt","r",encoding="UTF-8")
#方式2:一行一行的读取内容
for line in f:
    words=line.split(" ")#以空格切分单词,但是可以发现,每一行的末尾会有一个换行符号\n
    print(words)

有反斜杠n的是无法被统计出来的,所以要踢出反斜杠n。可以用line.replace,把反斜杠n去部踢出掉。也可以用line.strip()去除开头和结尾的空格以及换行符。

#打开文件,以读取模式r打开
f=open("D:/word.txt","r",encoding="UTF-8")
#方式2:一行一行的读取内容
for line in f:
    line=line.strip()#去除开头和结尾的空格和换行符
    words=line.split(" ")#以空格切分单词,但是可以发现,每一行的末尾会有一个换行符号\n
    print(words)

很明显换行符都没有了,不在影响结果。可以统计itxuexi的数量了,定义count来统计数量。

#打开文件,以读取模式r打开
f=open("D:/word.txt","r",encoding="UTF-8")
#方式2:一行一行的读取内容
count=0
for line in f:
    line=line.strip()#去除开头和结尾的空格和换行符
    words=line.split(" ")#以空格切分单词,但是可以发现,每一行的末尾会有一个换行符号\n
    for word in words:
        if word=="itxuexi":
            count+=1
print(f"itxuexi出现的次数是:{count}")
#最后关闭文件
f.close()

03_文件的写入-write

如何调用方法把内容写入到文件中?

"""
演示文档的写入
"""
#打开文件,不存在的文件,用w模式进行写文件
import time
f = open("E:/test.txt","w",encoding="UTF-8")
#write写入.此时会在e盘中创建这个一个叫test的txt,但是此时txt中还不会有内容,需要flush以后才会写进去
f.write("Hello World!!!")#此时只是将内容写入到了内存中,而不是内盘中
#flush刷新
f.flush()       #将内存中积攒的内容,写入到硬盘的文件中


close功能可以直接内置flush功能,注释掉flush行内容,删除已经生成的文件,执行上面代码,依旧会生成一个test.txt文件

"""
演示文档的写入
"""
#打开文件,不存在的文件,用w模式进行写文件
import time
f = open("E:/test.txt","w",encoding="UTF-8")
#write写入.此时会在e盘中创建这个一个叫test的txt,但是此时txt中还不会有内容,需要flush以后才会写进去
f.write("Hello World!!!")#此时只是将内容写入到了内存中,而不是内盘中
#flush刷新
# f.flush()       #将内存中积攒的内容,写入到硬盘的文件中
#close关闭,用close关闭文件
f.close()        #close方法是内置了flush的功能的,也就是上面flush可以不用写


#打开一个已经存在的文件
f= open("E:/test.txt","w",encoding="UTF-8")
#Write写入,flush刷新
f.write("计算机")
#close
f.close()

W模式的两种属性:

1.文件不存在的时候,会将文件创建出来 2.文件存在的时候,再写入新的内容,会将老的内容覆盖替换换位为新的内容

总结:

04-文件的追加操作

"""
演示问价内动追加写入
"""
#以下内容用于创建一个写入计算机内容的txt文件
#打开文件,不存在的文件
f = open("D:/test.txt","a",encoding="UTF-8")
#write写入
f.write("计算机")
#flush刷新
f.flush()
#close关闭
f.close()

#打开一个存在的文件
f = open("E:/test.txt","a",encoding="UTF-8")
#write写入,flush刷新
f.write("k考研别问为什么")
#close关闭
f.close()

很明显,内容已经追加上去了。

若要加入的内容和原来内容不在同一行的话,可以加上\n

#打开一个存在的文件
f = open("E:/test.txt","a",encoding="UTF-8")
#write写入,flush刷新
f.write("\n考研别问为什么")
#close关闭
f.close()

总结

05-文件操作的综合案例

需求:有一份账单文件,记录了消费收入的具体记录,内容如下

name,dato,money,type,somarks
周杰轮,2022-01-01,100000,消费,正式
周杰轮,2022-01-02,300000,收入,正式
周杰轮,2022-01-03,100000,消费,测试
林俊节,2022-01-01,300000,收入,正式
林俊节,2022-01-02,100000,消费,测试
林俊节,2022-01-03,100000,消费,正式
林俊节,2022-01-04,100000,消费,测试
林俊节,2022-01-05,500000,收入,正式
张学油,2022-01-01,100000,消费,正式
张学油,2022-01-02,500000,收入,正式
张学油,2022-01-03,900000,收入,测试
王力鸿,2022-01-01,500000,消费,正式
王力湖,2022-01-02,300000,消费,测试
王力满,2022-01-03,950000,收入,正式
刘德滑,2022-01-01,300000,消费,测试
刘德滑,2022-01-02,100000,消费,正式
刘德滑,2022-01-03,300000,消费,正式

同学们可以将内容复制并保存为 bill.txt文件

"""
演示文件操作综合案例:文件备份
"""
#打开文件得到文件对象,准备读取
fr =open("E:/bill.txt","r",encoding="UTF-8")#打开在E盘中已经存在的文件,用r
#打开文件得到文件对象,准备写入
fw =open("E:/bill.txt.bak","w",encoding="UTF-8")#将文件写入到d盘中,用w
#for 循环读取文件
for line in fr:  #循环读取文件里的内容,可以用逗号将内容分隔一下
    #但是注意分隔以后,会有一个换行符,需要处理
    line =line.strip()  #将开头和结尾空格都处理掉,同时也处理掉换行符
    if line.split(",")[4] =="测试" #通过逗号将文件内容分隔,选取列表中第4个元素
        continue        #continue进入下一次循环,这一次后面的内容就不会在执行了
    #判断内容,将满足的内容写出
    fw.write(line)
    #由于前面对内容进行了strip()的操作,所以要手动的写出换行符
    fw.write("\n")
#close2个文件对象
fr.close()
fw.close()   #x写出文件调用close()会自动flush()


相关文章
|
3月前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
|
4月前
|
数据挖掘 Python
🚀告别繁琐!Python I/O管理实战,文件读写效率飙升的秘密
在日常编程中,高效的文件I/O管理对提升程序性能至关重要。Python通过内置的`open`函数及丰富的库简化了文件读写操作。本文从基本的文件读写入手,介绍了使用`with`语句自动管理文件、批量读写以减少I/O次数、调整缓冲区大小、选择合适编码格式以及利用第三方库(如pandas和numpy)等技巧,帮助你显著提升文件处理效率,让编程工作更加高效便捷。
52 0
|
3月前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
3月前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
70 2
|
4月前
|
存储 Python
Python文件操作
Python文件操作
|
4月前
|
存储 安全 Python
30天拿下Python之文件操作
30天拿下Python之文件操作
35 1
|
3月前
|
索引 Python
Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩
这篇文章是关于如何使用Python读取Excel文件中的学生成绩数据,并进行计算平均成绩、成绩等级划分、统计分数大于70的次数以及找出最优成绩等操作的教程。
114 0
|
4月前
|
监控 安全 Java
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【9月更文挑战第13天】在Python系统编程中,文件操作与I/O管理至关重要。本文通过五个实战案例分享最佳实践:高效遍历文件系统、优雅处理文件读写、利用缓冲机制优化性能、并行处理文件加速任务以及异常处理确保程序稳健。使用pathlib、上下文管理器及concurrent.futures等工具,助你轻松掌握Python文件系统与I/O操作,提升编程效率和项目质量。 示例代码展示了如何使用pathlib遍历目录、with语句安全读写文件、控制缓冲区大小、并行处理多个文件以及捕获异常保证程序稳定运行。通过这些技巧,你将能够在实际项目中更加高效地管理和操作文件。
52 6
|
3月前
|
Java 程序员 Python
【Python】文件操作
【Python】文件操作
26 0
|
5月前
|
SQL JSON 关系型数据库
n种方式教你用python读写excel等数据文件
n种方式教你用python读写excel等数据文件
76 1