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()


相关文章
|
6天前
|
存储 JSON 安全
Python中的文件操作与文件IO操作
【5月更文挑战第14天】在Python中,文件操作是常见任务,包括读取、写入和处理文件内容。`open()`函数是核心,接受文件路径和模式(如'r'、'w'、'a'、'b'和'+')参数。本文详细讨论了文件操作基础,如读写模式,以及文件IO操作,如读取、写入和移动指针。异常处理是关键,使用`try-except`捕获`FileNotFoundError`和`PermissionError`等异常。进阶技巧涉及`with`语句、`readline()`、`os`和`shutil`模块。数据序列化与反序列化方面,介绍了
18 0
|
6天前
|
Python
【Python操作基础】——文件操作
【Python操作基础】——文件操作
|
6天前
|
安全 Linux Python
|
6天前
|
存储 安全 Linux
python文件操作open的使用方法详解
python文件操作open的使用方法详解
|
6天前
|
存储 运维 Shell
第十二章 Python文件操作
第十二章 Python文件操作
|
6天前
|
存储 安全 Python
Python从入门到精通:2.2.2异常处理与文件操作:文件的打开、读取、写入和关闭操作。
Python从入门到精通:2.2.2异常处理与文件操作:文件的打开、读取、写入和关闭操作。
|
6天前
|
存储 开发者 Python
Python从入门到精通:2.2.1异常处理与文件操作——学习try/except语句进行异常处理
Python从入门到精通:2.2.1异常处理与文件操作——学习try/except语句进行异常处理
|
6天前
|
存储 Python Windows
python INI文件操作与configparser内置库
python INI文件操作与configparser内置库
42 0
|
6天前
|
存储 数据处理 定位技术
深入Python文件操作:从基础到高级
【4月更文挑战第6天】在Python中,文件操作是基础且关键的任务,涉及读取、写入及其他处理。本文介绍了文件基础,如文件是数据集合,分为文本和二进制文件,以及文件路径的绝对和相对路径。接着,讲解了使用`open()`函数以不同模式(如'r'、'w'、'a'、'b')打开文件,并通过`close()`关闭文件。示例展示了如何打开、写入和关闭文件。
55 0
|
6天前
|
Python
python 文件操作和学生管理系统练习
python 文件操作和学生管理系统练习
24 0