前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python操作文件:从入门到“悟”

Python操作文件:从入门到“悟”

作者头像
小博测试成长之路
发布2023-09-01 08:29:59
1340
发布2023-09-01 08:29:59
举报
文章被收录于专栏:软件测试学习

一、打开文件

Python里面打开文件可以使用内置的open函数。

open函数的定义如下:

代码语言:javascript
复制
def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True): # known special case of open

常用参数介绍:

  • file:指定要打开的文件名
  • 打开模式(mode):打开模式可以是一个字符串,用于指定读取、写入或追加等操作。常见的打开模式包括 "r"(读取模式)、"w"(写入模式)、"a"(追加模式)
  • 编码(encoding,可选):用于指定文件的字符编码,仅在文本模式下使用,比如utf-8,gbk等

其他的参数我暂时没怎么用过,先不进行过多介绍,以免文档写错了,对大家造成困扰。

下面来重点看下mode介绍,先看函数官方定义的文档中是怎么描述的:

代码语言:javascript
复制
 ========= ===============================================================
    Character Meaning
    --------- ---------------------------------------------------------------
    'r'       open for reading (default)
    'w'       open for writing, truncating the file first
    'x'       create a new file and open it for writing
    'a'       open for writing, appending to the end of the file if it exists
    'b'       binary mode
    't'       text mode (default)
    '+'       open a disk file for updating (reading and writing)
    ========= ===============================================================

英文看不懂的话 ,我再来写一下自己的理解:

代码语言:javascript
复制
 ========= ===============================================================
    Character Meaning
    --------- ---------------------------------------------------------------
    'r'       读取模式,也是默认的选项
    'w'       写入模式,首先清空文件再写入
    'x'       创建新文件并打开进行写入,如果文件已存在时会报错:FileExistsError: [Errno 17] File exists
    'a'       追加模式,如果文件存在则在文件末尾追加
    'b'       二进制模式
    't'       文本模式 (default)
    '+'       表示以更新模式打开文件。这种模式允许对文件进行读取和写入操作,即同时支持读取和写入
    ========= ===============================================================

rwabt这几个字母怎么去记忆呢?可以根据对应的英文单词喔,分别是read、write、append、byte、text。

二、使用with语句操作文件

在Python中,打开文件后最好使用with语句来读取文件。with语句在结束时会自动关闭文件,无需显式调用close()方法。with语句提供了一种方便的方式来确保在文件使用完毕后自动关闭,以避免资源泄漏和错误。当with块结束时,文件将自动关闭,即使在处理文件期间发生异常或错误,也会正确地关闭文件。

代码语言:javascript
复制
with open('myfile.txt', 'r',encoding="utf-8") as file:
    content = file.read()
    # 在这里可以对文件内容进行处理
    print(content)
# 文件会在with语句结束后自动关闭,无需手动调用file.close()

逐行读取文件:

代码语言:javascript
复制
with open('myfile.txt', 'r',encoding="utf-8" ) as file:
    for line in file:
        # 对每一行进行处理
        print(line)

按行写入文件:

代码语言:javascript
复制
lines = ['Line 1', 'Line 2', 'Line 3']
with open('myfile.txt', 'w') as file:
    for line in lines:
        file.write(line + '\n')
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小博测试成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档