Python读写文件

最近得以空闲,然后继续学习py。


学习一下py中最频繁用到的文件读写的方法。

在py中,操作是通过文件对象【File obj】实现的,通过文件对象可以读写文本文件和一些二进制文件。

1.打开文件

使用Python中的open函数。有8个参数,但是我们常用的就2个足够了。

# 使用所有参数打开文件
with open('example.txt', mode='r', buffering=1, encoding='utf-8', errors='ignore', newline='\n', closefd=True, opener=None) as f:
    # 读取文件内容
    content = f.read()
    print(content)


  • file参数
    如果是字符串,则代表的是文件名字,文件名字可以是相对当前目录的路径,也可以是绝对路径;如果是一个整数,则代表文件描述符,文件描述符指向一个打开的文件。
  • mode参数

下面是常用的文件打开模式:

  1. 只读模式 (r)

    • 描述:以只读模式打开文件。文件指针将会放在文件的开头。如果文件不存在,会抛出 FileNotFoundError 异常。
    • 示例open('filename.txt', 'r')
  2. 写入模式 (w)

    • 描述:以写入模式打开文件。文件指针会放在文件的开头。如果文件不存在,会创建一个新文件。如果文件存在,会截断文件(即清空文件内容)。
    • 示例open('filename.txt', 'w')
  3. 追加模式 (a)

    • 描述:以追加模式打开文件。文件指针会放在文件的末尾。如果文件不存在,会创建一个新文件。如果文件存在,写入的数据将会追加到文件的末尾。
    • 示例open('filename.txt', 'a')
  4. 读写模式 (r+)

    • 描述:以读写模式打开文件。文件指针会放在文件的开头。如果文件不存在,会抛出 FileNotFoundError 异常。
    • 示例open('filename.txt', 'r+')
  5. 写入读模式 (w+)

    • 描述:以写入读模式打开文件。文件指针会放在文件的开头。如果文件不存在,会创建一个新文件。如果文件存在,会截断文件。
    • 示例open('filename.txt', 'w+')
  6. 追加读模式 (a+)

    • 描述:以追加读模式打开文件。文件指针会放在文件的末尾。如果文件不存在,会创建一个新文件。如果文件存在,写入的数据将会追加到文件的末尾。可以进行读写操作。
    • 示例open('filename.txt', 'a+')
  7. 二进制模式 (b)

    • 描述:以二进制模式打开文件。可以与上述模式组合使用,例如 rbwbabr+b 等。用于读取或写入二进制文件,如图片、音频等。
    • 示例open('filename.bin', 'rb')
  8. 文本模式 (t)

    • 描述:以文本模式打开文件。默认模式,可以与上述模式组合使用,例如 rtwtatr+t 等。用于读取或写入文本文件。
    • 示例open('filename.txt', 'rt')

示例代码

以下是一些打开文件的示例代码:

# 以只读模式打开文本文件
with open('example.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# 以写入模式打开文本文件
with open('example.txt', 'w', encoding='utf-8') as f:
    f.write("Hello, World!")

# 以追加模式打开文本文件
with open('example.txt', 'a', encoding='utf-8') as f:
    f.write("Appending some text.")

# 以二进制模式打开文件
with open('example.bin', 'rb') as f:
    binary_content = f.read()

# 以读写模式打开文件
with open('example.txt', 'r+', encoding='utf-8') as f:
    f.write("Read and write.")
    f.seek(0)
    content = f.read()

2.关闭文件

当使用了open打开文件之后,要记得写关闭文件,否则会抛异常。

常规就是调用一次open,然后尾部写一下close。

但是一般情况下,文件的操作往往会抛出异常,为了保证文件的操作无论正常结束还是异常结束都能够关闭文件,使用with as 代码块来进行自动资源管理。

import unittest


class MyTestCase(unittest.TestCase):
    def test_something(self):
        # self.assertEqual(True, False)  # add assertion here
        # print("hello world")
        fobj = open("test.txt", "w+",encoding="utf-8")

        fobj.write("hello world")
        fobj.close()

        with open("test.txt", "a+",encoding="utf-8") as f:
            f.write("\n大家好~")


if __name__ == '__main__':
    unittest.main()

这样子执行的话,就是创建了一个文件,往里面写入了一句话。

注意

  • 文件有编码的,需要指定
  • 用完要关闭
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爪哇小白2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值