惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
爱范儿
爱范儿
罗磊的独立博客
V
V2EX
量子位
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
Jina AI
Jina AI
博客园 - 叶小钗
小众软件
小众软件
博客园 - 【当耐特】
Y
Y Combinator Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
博客园 - 聂微东
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
有赞技术团队
有赞技术团队
MongoDB | Blog
MongoDB | Blog
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - runfox545

解决招生难!巧手智心 PMR 科创方案:趣味实验 留资 探园 报名全闭环 园长必看|3 套零压力招生 SOP,巧手智心 STEM 让延时班快速满班 让小手玩出智慧,让科学扎根童年 —— 巧手智心 STEM 幼儿园课程的温暖实践 巧手智心 STEM:园所科创教育主流标杆,铸就特色办学核心竞争力 为什么说巧手智心STEM特别适合尝试做科技特色教育的幼儿园? 巧手智心STEM和网上的科学盒子有什么区别 巧手智心STEM课程介绍 乐高VS巧手智心STEM 关于幼儿园STEM课程设计的思考 适合幼儿园开展的STEM课程品牌介绍及分析 白话带你理解什么是编程 什么是对象的方法 Python之列表推导式 英语对学习软件开发重要吗? python3中的range函数返回的是列表吗? 神奇的字符编码 0基础转行程序员 路怎么走? Python之异常处理 Python基础之带你快速掌握列表的常用方法 print默认在末尾添加一个换行符,但其实也可以不用! Python做int()强制类型转换的时候,小数是如何取舍的?
文件读写
runfox545 · 2019-01-17 · via 博客园 - runfox545

转自白月黑羽Python3教程文件读写

我们开发程序,经常需要从文本文件中读入信息,比如从日志文件中读取日志,从而分析数据信息;

也经常需要写入文本信息到文件中,比如写入操作信息到日志文件中。

在python语言中,我们要读写文本文件, 首先通过内置函数open 打开一个文件。

open函数会返回一个对象,我们可以称之为文件对象。

这个返回的文件对象就包含读取文本内容和写入文本内容的方法。

前面的课程我们刚刚学过,要写入字符串到文件中,需要先将字符串编码为字节串

而从文本文件中读取的文本信息都是字节串,要进行处理之前,必须先将字节串解码为字符串

文本文件读写

open函数的参数

要读写文件,首先要通过内置函数open 打开文件,获得文件对象。

函数open的参数如下

open(
    file, 
    mode='r', 
    buffering=-1, 
    encoding=None, 
    errors=None, 
    newline=None, 
    closefd=True, 
    opener=None
    ) 

其中下面这3个参数是我们常用的。

  • 参数 file

    file参数指定了要打开文件的路径。

    可以是相对路径,比如 ‘log.txt’, 就是指当前工作目录下面的log.txt 文件 也可以是绝对路径,比如 ‘d:\project\log\log.txt’,

  • 参数 mode

    mode参数指定了文件打开的 模式 ,打开文件的模式 决定了可以怎样操作文件。

    常用的打开模式有

    • r 只读文本模式打开,这是最常用的一种模式

    • w 只写文本模式打开

    • a 追加文本模式打开

    如果我们要 读取文本文件内容到字符串对象中 , 就应该使用 r 模式。

    我们可以发现mode参数的缺省值 就是 ‘r’ 。

    就是说,调用open函数时,如果没有指定参数mode的值,那么该参数就使用缺省值 ‘r’,表示只读打开。

    如果我们要 创建一个新文件写入内容,或者清空某个文本文件重新写入内容, 就应该使用 ‘w’ 模式。

    如果我们要 从某个文件末尾添加内容, 就应该使用 ‘a’ 模式。

  • 参数 encoding

    encoding 参数指定了读写文本文件时,使用的 字符编解码 方式。

    调用open函数时,如果传入了encoding参数值:

      后面调用write写入字符串到文件中,open函数会使用指定encoding编码为字节串;
        
      后面调用read从文件中读取内容,open函数会使用指定encoding解码为字符串对象
    

    如果调用的时候没有传入encoding参数值,open函数会使用系统缺省字符编码方式。 比如在中文的Windows系统上,就是使用cp936(就是gbk编码)。

    建议大家编写代码 读写文本文件时,都指定该参数的值。