08 Python文件待更新

1.文件编码

  • 什么是文件编码?
  • 有哪些文件编码?

2.文件的读取

  • 文件操作步骤:

  • open()

  • read()

    • 带字节
    • 不带字节
    • 注意光标位置
    • 注意"\n"
  • readlines()

  • readline()

  • for line in

    • 要掌握
  • 文件对象.close()

    • 对比不关闭,文件被占用

    • 使用sleep睡眠方法

  • with open 方法

"""
演示对文件的读取
"""

# 打开文件
import time

f = open("D:/测试.txt", "r", encoding="UTF-8")
print(type(f))
# 读取文件 - read()
# print(f"读取10个字节的结果:{f.read(10)}")
# print(f"read方法读取全部内容的结果是:{f.read()}")
print("-----------------------------------------------")
# 读取文件 - readLines()
# lines = f.readlines()   # 读取文件的全部行,封装到列表中
# print(f"lines对象的类型:{type(lines)}")
# print(f"lines对象的内容是:{lines}")

# 读取文件 - readline()
# line1 = f.readline()
# line2 = f.readline()
# line3 = f.readline()
# print(f"第一行数据是:{line1}")
# print(f"第二行数据是:{line2}")
# print(f"第三行数据是:{line3}")

# for循环读取文件行
# for line in f:
#     print(f"每一行数据是:{line}")
# # 文件的关闭
# f.close()
# time.sleep(500000)
# with open 语法操作文件
with open("D:/测试.txt", "r", encoding="UTF-8") as f:
    for line in f:
        print(f"每一行数据是:{
     line}")

time.sleep(500000)
  • 课后练习-单词计数:
    • 通过Windows的文本编辑器软件,将如下内容,复制并保存到:word.txt,文件可以存储在任意位置,通过文件读取操作,读取此文件,统计itdashuju单词出现的次数
itdashuju itcast python
itdashuju python itcast
beijing shanghai itdashuju
shenzhen guangzhou itdashuju
wuhan hangzhou itdashuju
zhengzhou bigdata itdashuju

3.文件的写入

  • 使用方法:

    • "w"模式
    • write()
    • flush()
  • 案例:

    • 注意:直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
    • 当调用flush的时候,内容会真正写入文件这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)
# 1. 打开文件
f = open('python.txt', 'w')

# 2.文件写入
f.write('hello world')

# 3. 内容刷新
f.flush()
  • 使用”w”模式,写操作注意:
    • 文件如果不存在,会创建新文件文件如果存在,
    • 文件如果不存在,会将原有内容清空
  • close,自带flush() 方法的功能

4.文件的追加文件

  • 所有方法类似写入操作,类比写入记忆

  • 案例演示:

    • a模式,文件不存在,会创建文件
    • a模式,文件存在,会在最后,追加写入文件
# 1. 打开文件,通过a模式打开即可
f = open('python.txt', 'a')

# 2.文件写入
f.write('hello world')

# 3. 内容刷新
f.flush()
  • 演示练习:
"""
演示文件的追加写入
"""

# 打开文件,不存在的文件

# write写入

# flush刷新

# close关闭

# 打开一个存在的文件

# write写入、flush刷新

# close关闭
  • 课堂练习案例

5.操作综合案例

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

name,date,money,type,remarks
周杰轮,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文件,
我们现在要做的就是:
读取文件
将文件写出到bill.txt.bak文件作为备份
同时,将文件内标记为测试的数据行丢弃
实现思路:
open和r模式打开一个文件对象,并读取文件
open和w模式打开另一个文件对象,用于文件写出
for循环内容,判断是否是测试不是测试就write写出,是测试就continue跳过
将2个文件对象均close()

相关推荐

  1. 08 Python文件更新

    2023-12-11 00:08:03       59 阅读
  2. Pickle文件读取——(完善)

    2023-12-11 00:08:03       54 阅读
  3. Linux0.11内核源码解析-string更新

    2023-12-11 00:08:03       66 阅读
  4. sql工作文档(优化版本)

    2023-12-11 00:08:03       30 阅读
  5. vueelementui+tabs选项卡样式更改-内容递增

    2023-12-11 00:08:03       35 阅读
  6. 力扣hot 100:1. 两数之和(未完成更新)

    2023-12-11 00:08:03       40 阅读
  7. 07 MySQL--更新、删除

    2023-12-11 00:08:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-11 00:08:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-11 00:08:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-11 00:08:03       82 阅读
  4. Python语言-面向对象

    2023-12-11 00:08:03       91 阅读

热门阅读

  1. html,css,开发知识,调试知识

    2023-12-11 00:08:03       52 阅读
  2. Class 与 Style 绑定

    2023-12-11 00:08:03       59 阅读
  3. Torch2TRT编译和使用踩坑

    2023-12-11 00:08:03       71 阅读
  4. Vue3源码梳理:源码目录结构及源码阅读方法

    2023-12-11 00:08:03       60 阅读
  5. 全网最全的正则匹配规则,整理多家网站案例

    2023-12-11 00:08:03       47 阅读
  6. 网卡学习资料整理

    2023-12-11 00:08:03       68 阅读
  7. Android 11.0 长按按键切换SIM卡默认移动数据

    2023-12-11 00:08:03       63 阅读