python的艰难学习之路-文件操作

本文详细介绍了文件操作的基础知识,包括文件类型、操作流程、常用函数如open、read、write、close,以及文件指针、读取策略、文件复制实践等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件操作

1.文件类型

  • 文本文件
    • 可以用文本工具查看的文件
    • 实质上也是二进制文件
  • 二进制文件
    • 不能使用文本工具查看的文件,比如图片、视频、音频等,需要特殊的工具才能打开查看

2.文件操作

2.1操作文件的基本套路

  • 打开文件
  • 读写文件
    • 读:将文件内容读入内存
    • 写:将内存内容写到文件
  • 关闭文件

2.2操作文件的函数&方法

  • open:打开文件,返回文件操作对象
  • read:将文件内容读入内训
  • write:将制定内容写入文件
  • close:关闭文件

2.3 read方法 --读取文件

try:
    filename = open("readme")  # 打开
    print(filename.read())  # 读取
    filename.close()  # 关闭
except FileNotFoundError:
    print("未找到文件")
except Exception as fault:
    print("未知错误:%s" % fault)

2.4文件指针

  • 文件读取一遍之后,指针会去到文件最后,这时候再调用read方法,就读不到任何内容了

2.5文件的写入和追加

  • 文件的打开方式
    • r:只读方式
    • w:只写方式
    • a:追加方式
    • r+、w+、a+ :读写
    在这里插入图片描述
    == 不推荐使用后面带+的方式==

2.6分行读取 – readline

在面对一个大文件时,如果全部都读取出来放到内存,会对内存造成很大的压力
  • readline 默认每次只读取一行文件
  • 每次读完一行之后,指针会去到下一行

2.7另一种文件操作方式–with open

自己看的这个教程没有讲这个方法,但是个人比较喜欢这个方法,这个方法打开文件之后,用完系统会自动关闭,不用手动关闭
刚刚发现,这个方法有个很打的弊端,就是很难实现多个文件之间的操作,比如复制粘贴这种,如果单文件使用,可以用这个,如果涉及到多文件,就不要用了

2.8文件复制练习

下面是正确的代码
file_to_read = open("test.txt")
file_to_write = open("test6.txt", "a")

while True:
    file_line = file_to_read.readline()
    if not file_line:
        break
    file_to_write.write(file_line)

file_to_read.close()
file_to_write.close()

在写的时候,想到了下面的方法,但是发现会死循环
file_to_read = open("test.txt")
file_to_write = open("test6.txt", "a")

while True:
    file_line = file_to_read.readline()
    if file_line is None:
        break
    file_to_write.write(file_line)

file_to_read.close()
file_to_write.close()

目前不知道为什么会出现这个情况,如果有大神看到,还望指点一二···不甚感激

由于个人不喜欢while循环,想到了用for循环的想法:
不想全部读取出来再放进去,所以只能循环啦
  • 先介绍一个方法–readlines:
    • 这个方法会把文件的所有内容读取到一个列表中,每一行作为一个列表的元素
    • 通过获取该列表的元素数量,就可以得到文件的行数,从而使用for循环···我还真的是执着
    • 但是这个方法还是有毛病,如果文件特别大,还是不适用

3.os模块对目录和文件的操作

对文件的管理,不涉及对文件内容的操作

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值