| 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区 |
| 当调用flush的时候,内容会真正写入文件 |
| 这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘) |
| 文件如果不存在,使用”w”模式,会创建新文件 |
| 文件如果存在,使用”w”模式,会将原有内容清空 |
| close()方法,带有flush()方法的功能 |
| f = open("D:/test.txt", "w", encoding="UTF-8") |
| # write写入 |
| f.write("Hello World!!!") # 内容写入到内存中 |
| # flush刷新 |
| f.flush() # 将内存中积攒的内容,写入到硬盘的文件中 |
| # close关闭 |
| f.close() # close方法,内置了flush的功能的 |
| |
| # 打开一个存在的文件 |
| f = open("D:/test.txt", "w", encoding="UTF-8") |
| # write写入、flush刷新 |
| f.write("黑马程序员") |
| # close关闭 |
| f.close() |
| a模式,文件不存在,会创建新文件 |
| a模式,文件存在,会在原有内容后面继续写入 |
| 可以使用”\n”来写出换行符 |
| # 打开文件,不存在的文件 |
| f = open("D:/test.txt", "a", encoding="UTF-8") |
| # write写入 |
| f.write("黑马程序员") |
| # flush刷新 |
| f.flush() |
| # close关闭 |
| f.close() |
| |
| # 打开一个存在的文件 |
| f = open("D:/test.txt", "a", encoding="UTF-8") |
| # write写入、flush刷新 |
| f.write("\n月薪过万") |
| # close关闭 |
| f.close() |
| 读取文件 |
| 将文件写出到bill.txt.bak文件作为备份 |
| 同时,将文件内标记为测试的数据行丢弃 |
| |
| 实现思路: |
| open和r模式打开一个文件对象,并读取文件 |
| open和w模式打开另一个文件对象,用于文件写出 |
| for循环内容,判断是否是测试不是测试就write写出,是测试就continue跳过 |
| 将2个文件对象均close() |
| |
| fr = open("D:/bill.txt", "r", encoding="UTF-8") |
| |
| fw = open("D:/bill.txt.bak", "w", encoding="UTF-8") |
| |
| for line in fr: |
| line = line.strip() |
| |
| if line.split(",")[4] == "测试": |
| continue |
| |
| fw.write(line) |
| |
| fw.write("\n") |
| |
| |
| fr.close() |
| fw.close() |
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术