Python文件操作:文件的打开关闭读取写入

一、文件的打开关闭

Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作。

文件操作都分为以下几个步骤:

1.打开文件。

2.操作文件:读/写。

3.关闭文件。

操作系统中的文件默认处于存储状态,读写文件时需要请求操作系统打开一个要在当前程序操作的对象,打开不存在的文件可以创建文件。open()方法通过接收"文件路径"以及“文件打开模式”等参数来打开一个文件,并且返回文件对象。打开后的文件只能在当前程序操作,不能被另一个进程占用。操作之后一定将文件关闭,进程将释放对文件的控制,使文件恢复存储状态,这时,另一个进程将能够操作此文件。

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。其中,file对象使用open函数来创建,file对象常用的函数如下:

file.close():关闭文件。关闭后文件不能再进行读写操作。

file.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

file.fileno():返回一个整型的文件描述符(file descriptor FD 整型),可以用在如os模块的read方法等一些底层操作上。

file.isatty():如果文件连接到一个终端设备返回 True,否则返回False。

file.next():返回文件下一行。

file.read([size]):从文件读取指定的字节数,如果未给定或为负则读取所有。

file.readline([size]):读取整行,包括 " " 字符。

file.readlines([sizeint]):读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。

file.seek(offset[, whence]):设置文件当前位置。

file.tell():返回文件当前位置。

file.truncate([size]):截取文件,截取的字节通过size指定,默认为当前文件位置。

file.write(str):将字符串写入文件,返回的是写入的字符长度。

file.writelines(sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

文件打开模式如下:

t:文本模式 (默认)。

x:写模式,新建一个文件,如果该文件已存在则会报错。

b:二进制模式。

+:打开一个文件进行更新(可读可写)。

U:通用换行模式(不推荐)。

r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。

r+:打开一个文件用于读写。文件指针将会放在文件的开头。

rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

二、文件的读写

1.Python中读取文件的相关方法:

.read():一次读取文件所有内容,返回一个字符串或字节流。

.read(size):每次最多读取指定长度的内容,返回一个字符串或字节流。在Python3中size指定的是字符长度。

.readlines():一次读取文件所有内容,按行返回一个列表。

.readline():每次只读取一行内容。

我们来读取一个存放在D盘的名为“123.txt”的文本文件,该文件的字符编码为utf-8,其中包含的文本是北岛的诗歌《走吧》,如下所示。

#第一步:(以只读模式)打开文件

f= open('D:/123.txt', mode='r', encoding='utf-8')#第二步:读取文件内容

print(f.read())#第三步:关闭文件

f.close()

运行结果:

2.Python中写入文件的相关方法:

.write():向文件写入一个字符串或字节流。

.writelines():将一个元素全为字符串的列表写入文件。

.seek(offset):改变当前操作指针的位置,offset的值:

0——文件开头

1——当前位置

2——文件结尾

注意:Python字符串可以是二进制数据,而不是仅仅是文字。write()方法不会在字符串的结尾添加换行符(' ')。

我们创建一个文本文件用来写入文本,该文件的字符编码为utf-8,如下所示。

#第一步:(以只写模式)打开文件

f= open('D:/123.txt', mode='w', encoding='utf-8')#第二步:写入文件内容

f.write("人生若只如初见,何事秋风悲画扇。")#第三步:关闭文件

f.close()

运行结果:

也可以向文件写入一个列表,打印输出结果,如下所示。

f = open('D:/123.txt', mode='w+', encoding='utf-8')

ls=['一本正经','两厢情愿','三顾茅庐','四海为家']

f.writelines(ls)#写入内容在文件操作指针之前,用seek(0)将文件操作指针返回到文件开始使其顺利向后读入并打印内容,否则打印内容无法显示

f.seek(0)for line inf:print(line)

f.close()

运行结果:

参考资料:

https://www.runoob.com/python/python-files-io.html

python关闭读写的所有的文件-Python文件操作:文件的打开关闭读取写入相关推荐

  1. 文件和文件夹的操作——文件流的使用

    1.文件的读取和写入 思路:主要用到了File类的CreateText方法和StreamWriter类的WriteLine方法. (1).File类的CreateText方法,该方法实现创建或打开一个 ...

  2. python openpyxl读写xlsx_python高阶教程-python操作xlsx文件(openpyxl)

    本篇内容来自原创小册子<python高阶教程>,点击查看目录. 背景 在处理一些作业时,经常会碰到统计未交人数.分数等需求,虽然我们在数据库中有了对应的数据, 但是数据库只是面向开发者的, ...

  3. python之文件操作(txt文本的读取写入及处理方法)

    目录 1. 读取txt文档 1.1 打开.txt文件逐行读取文件内容 2.1 分割句子保存列表 2.2 filter使用:使用filter可将列表中的元素进行函数处理(append和expend区别) ...

  4. 文件和文件夹的操作——文件夹的操作

    创建文件夹 创建文件夹主要使用Directory类的Create方法 private void button1_Click(object sender, EventArgs e) { FolderBr ...

  5. iphone怎么关闭浮屏键_iPhone屏幕上的圆圈怎么设置 打开/关闭方法

    [巴士数码]iPhone屏幕上的圆圈怎么设置,现在教大家iPhone手机如何打开.关闭屏幕上的小圆圈图标的具体方法教程.iPhone屏幕上的这个小圆圈,其实是iPhone系统自带的一个功能,叫做&qu ...

  6. java接收文件流并操作文件流

    1.controller层 @PostMapping("/upload")public Resp upload(@RequestParam MultipartFile multip ...

  7. python在读写文件之前需要创建文件对象-python基础教程:文件读写

    在Linux系统中,一切都是文件.但我们通常说的文件是保存在磁盘上的图片.文档.数据.程序等等.而在程序的IO操作中,很多时候就是从磁盘读写文件.本节我们讲解Python中的文件对象如何操作文件. 创 ...

  8. python写文件读文件-Python文件读写

    在本章中将介绍Python 3中可用的所有基本文件读取I/O功能.有关更多功能,请参考标准Python文档. 打印到屏幕 产生输出的最简单方法是使用print语句,可以传递零个或多个由逗号分隔的表达式 ...

  9. 【Python】读写文件的操作

    编程语言中,我们经常会和文件和文件夹打交道,这篇文章主要讲的是Python中,读写文件的常用操作: 一.打开文件 openFile = open('../Files/exampleFile.txt', ...

最新文章

  1. JS页面加载完成触发事件
  2. (WPF, MVVM) Event 处理
  3. 从零开始搭建spring-cloud(1) ----eureka
  4. oracle物理DG管理-redo数据传输,应用与三种模式
  5. Service Worker的基本使用
  6. Windows下Mysql 的安装和卸载
  7. 《LeetcodeHot100非困难题补录》
  8. EF5.x Code First 一对多关联条件查询,Contains,Any,All
  9. Codeforces Good Bye 2015 A. New Year and Days 水题
  10. Table边框使用总结
  11. shiro的源码分析(一)
  12. 教你怎么短期内备考并通过PMP考试!
  13. C语言洛谷P1957口算练习题
  14. 刘华:上云还是不上云,这是一个问题
  15. ubuntu 20.04 安装百度网盘
  16. 正则表达式和文本处理工具
  17. 进制转换算法(通用,极简)
  18. 获取贵州茅台2010年1月1号至今的股票交易数据,计算该股票历史数据的5日均线和30日均线
  19. php小偷程序--获取网站内容
  20. [激光原理与应用-30]:典型激光器 -2- 气体激光器 (连续激光器)

热门文章

  1. 机器翻译引擎的基本原理 ——LSTM
  2. yarn架构——本质上是在做解耦 将资源分配和应用程序状态监控两个功能职责分离为RM和AM...
  3. [Notes] Bash Shell特性
  4. 【习题4-1 Uva1589】Xiangqi
  5. 树与二叉树 | 实验3:由遍历序列构造二叉树
  6. Maven的简单使用
  7. 树——常用的数据结构
  8. Tomcat学习过程
  9. Android之获得内存剩余大小与总大小
  10. C#.NET操作数据库通用类(MS SQL Server篇)