打开文件用open函数

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Open file and return a stream. Raise IOError upon failure.

重点关注两个参数:

  1. file:要打开的文件的路径,可以绝对路径或相对路径
  2. mode:文件打开模式
打开模式 执行操作
‘r’ 只读(默认模式)
'w' 只写,会覆盖已存在的文件
'x' 如果文件已存在,用此模式打开将引发异常
'a' 追加模式
'b' 二进制模式
't' 文本模式(默认情况)
'+' 可读写模式(可添加到其他模式中使用)
'u' 通用换行符支持

open函数返回一个文件对象,常用的文件对象方法有:

文件对象方法 执行操作
f.close() 关闭文件
f.read(size = -1) 读取size个字符,未给定size或size未负,则读取所有字符
f.readline() 按行读取
f.write(str) 将str写入文件
f.writelines(seq) 向文件写入字符串序列seq,seq应是一个返回字符串的可迭代对象
f.seek(offset, from) 移动文件指针,从from(0代表文件头,1代表当前位置,2代表文件尾)偏移offser字节
f.tell() 返回当前文件指针位置

打开文件,默认情况是只读模式'r'和文本模式't'

>>> f = open('./test.txt')

读取文件,用read()方法,未指定size,则读取整个文件。

>>> f.read()
'江雪\n唐 柳宗元\n千山鸟飞绝,\n万径人踪灭。\n孤舟蓑笠翁,\n独钓寒江雪。'

读取文件后,文件指针指向文件尾,可以使用seek重新设置偏移量

>>> f.tell()
101
>>> f.seek(0,0)
0
>>> f.tell()
0

或者使用list()将文件转化为列表,或用for循环迭代读取。

>>> for i in f:
... print(i)
...
江雪 唐 柳宗元 千山鸟飞绝, 万径人踪灭。 孤舟蓑笠翁, 独钓寒江雪。
>>> lines = list(f)
>>> lines
['江雪\n', '唐 柳宗元\n', '千山鸟飞绝,\n', '万径人踪灭。\n', '孤舟蓑笠翁,\n', '独钓寒江雪。']
>>> for i in lines:
... print(i)
...
江雪 唐 柳宗元 千山鸟飞绝, 万径人踪灭。 孤舟蓑笠翁, 独钓寒江雪。

向文件写内容,用write()方法

>>> f = open('./test.txt', 'w')
>>> str1 = '''《静夜思》
...
...   床前明月光,疑是地上霜。
...   举头望明月,低头思故乡。
... '''
>>> f.write(str1)
37
>>> f.close()
>>> f = open('./test.txt')
>>> for i in f:
... print(i)
...
《静夜思》   床前明月光,疑是地上霜。   举头望明月,低头思故乡。

python学习笔记(十六)之文件的更多相关文章

  1. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  2. python学习笔记十六:读取JSON文件

    读取JSON文件可以用JSON库,示例代码: #coding:utf-8 import json with open("msg.json") as jsonfile: json_d ...

  3. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  4. Python学习笔记 -- 第六章 文件操作

    I/O编程 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这 ...

  5. python学习笔记(十六)-Python多线程多进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  6. python3.4学习笔记(十六) windows下面安装easy_install和pip教程

    python3.4学习笔记(十六) windows下面安装easy_install和pip教程 easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安 ...

  7. Python学习笔记(六)

    Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...

  8. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  9. (C/C++学习笔记) 十六. 预处理

    十六. 预处理 ● 关键字typeof 作用: 为一个已有的数据类型起一个或多个别名(alias), 从而增加了代码的可读性. typedef known_type_name new_type_nam ...

  10. python学习笔记(六)——程序调试

    在我们平时编写程序时,常常会遇到各种错误,俗称BUG.而我们程序猿的工作常常需要对程序进行调试,也就是所谓的debug. 程序调试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法 ...

随机推荐

  1. 敏捷开发之Scrum站立会议

    Scrum是迭代式增量软件开发过程,通常用于敏捷开发.站立会议通常指Scrun方法中的每日站立会议.顾名思义,是每天以站姿的方式召开的会议.以下从功能及要点方面对其进行解释说明: 功能:     1. ...

  2. 使用Kettle导出excel

    1.开发背景 在web项目中,经常会需要查询数据导出excel,以前比较常见的就是用poi.使用poi的时候也有两种方式,一种就是直接将集合一次性导出为excel,还有一种是分批次追加的方式适合数据量 ...

  3. 因为NLS_LANG 造成 Oracle数据库丢失 中文字符集兼容问题的处理.

    接着上一封blog. 因为sqlplus的 乱码问题 我修改了 注册表里面 NLS_LANG 的 value值.主要改动为: NLS_LANG source: SIMPLIFIED CHINESE_C ...

  4. [转帖]IBM收购Red Hat

    来源cnbeta:https://www.cnbeta.com/articles/tech/782009.htm 2018年10月28 日,IBM 宣布收购 Linux 巨头 Red Hat.公告中称 ...

  5. docker+mesos+marathon

    前言 (Core) [root@docker-slave ~]# uname -r 3.10.0-229.4.2.el7.x86_64 [root@docker-slave ~]# uname -m ...

  6. 25个Java机器学习工具&库--转载

    本列表总结了25个Java机器学习工具&库: 1. Weka集成了数据挖掘工作的机器学习算法.这些算法可以直接应用于一个数据集上或者你可以自己编写代码来调用.Weka包括一系列的工具,如数据预 ...

  7. 我为什么鼓励工程师写blog

    文/JoeyChen 工程师该怎样才能突破自己的能力瓶颈?写 blog! 工程师该怎样精进自己在职涯上所需要的能力?写 blog! 工程师该怎样才能保持学习与成长的动能?写 blog! 工程师该怎样才 ...

  8. 洛谷 P3723 [AH2017/HNOI2017]礼物 解题报告

    P3723 [AH2017/HNOI2017]礼物 题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 \(n\) 个 ...

  9. Sqoop数据迁移工具

    一.概述 sqoop 是 apache 旗下一款“ Hadoop 和关系数据库服务器之间传送数据”的工具. 导入数据: MySQL, Oracle 导入数据到 Hadoop 的 HDFS. HIVE. ...

  10. 【loj2133】【NOI2015】品酒大会

    Portal --> loj2133 Solution 虽然说这题貌似用后缀树之类的好像会更加简短一点..但是还是因为在智力康复所以就还是用后缀数组好了嗯(哇好感动啊难得那么顺畅写了一道noi的 ...