前言:本文主要介绍python中文件的操作,包括打开文件、读取文件、写入文件、关闭文件以及上下文管理器。

一、打开文件


Python中open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出一个OSError。

使用语法:open(参数1,参数2,参数3)

参数1:文件名

参数2:打开的模式

参数3:编码方式(encoding = "utf-8")

  1. file = 'test.txt' # 文件与当前py文件在同一个目录下
  2. # r防转义,文件与当前py文件不在一个目录下时可以直接使用详细的地址,如果在上一个目录怎么写?思考一下
  3. file2 = r'D:\myworkspace\test\test.txt'
  4.  
  5. file = open(file, 'r', encoding='utf-8') # 以读取方式打开文件
  6. print(file.read()) # 读取文件的内容
  7. file.close()  # 打开文件使用完后记得关闭文件

运行结果:

  1. C:\software\python\python.exe D:/myworkspace/test/test.py
  2. 这是一个测试用的txt文本
  3.  
  4. Process finished with exit code 0

二、关闭文件


关闭文件:close()方法,在上面打开文件例子中已经举例。

注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法,关闭文件

三、写入文件


1.写入单行write

  1. file = open('test.txt', 'w', encoding='utf-8') # 以写入方式打开文件
  2. file.write('今天是星期四')
  3. file.close()

运行后查看text.txt文件

2.写入多行writelines

  1. file = open('test.txt', 'w', encoding='utf-8') # 以写入方式打开文件
  2. # 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符,注意最后一行不需要加换行符,不然文件最后会有一行空白行
  3. file.writelines(['今天是星期四\n', '明天是星期五\n', '后天是星期六'])
  4. file.close()

运行后查看text.txt文件

3.保存文件

file.flush()

四、读取文件


1.读取全部内容  read()

  1. file = open('test.txt', 'r', encoding='utf-8') # 以写入方式打开文件
  2. res1 = file.read()
  3. print(res1)
    file.close()

运行结果:

  1. C:\software\python\python.exe D:/myworkspace/test/test.py
  2. 今天是星期四
  3. 明天是星期五
  4. 后天是星期六
  5.  
  6. Process finished with exit code 0

2.读取一行  file.readline()

  1. file = open('test.txt', 'r', encoding='utf-8') # 以写入方式打开文件
  2. res2 = file.readline()
  3. print(res2)
  4.  
  5. file.close()

运行结果:

  1. C:\software\python\python.exe D:/myworkspace/test/test.py
  2. 今天是星期四
  3.  
  4. Process finished with exit code 0

3.按行读取所有内容  file.readlines()

  1. file = open('test.txt', 'r', encoding='utf-8') # 以写入方式打开文件
  2. res3 = file.readlines() # 一行保存为一个元素,组成一个列表,每行(除了最后一行)后面会带有一个换行符
  3. print(res3)
  4. file.close()

运行结果:

  1. C:\software\python\python.exe D:/myworkspace/test/test.py
  2. ['今天是星期四\n', '明天是星期五\n', '后天是星期六']
  3.  
  4. Process finished with exit code 0

五、文件定位(了解即可)


  • tell()方法告诉你文件内的当前位置;就是说,文件指针会在上次文字结尾后面,文件指针相当于我们阅读时,鼠标光标
  • seek(offset, from)方法改变当前文件的位置
    • offset:表示要移动的字节数(正数:忘文件结尾方向移动,负数:往文件开始方向移动)
    • from:指定开始移动字节的参考位置,默认为1(0:参考位置为文件开头;1:参考位置为当前所在位置;2:参考位置为文件结尾)
  1. file = open('test.txt', 'r', encoding='utf-8')
  2. print(file.tell()) # 返回此时光标的位置(查看指针)
  3. file.seek(0)) # 将文件光标移动到起始位置
  4. file.seek(70)) # 将文件光标移动到70的位置

六、上下文管理器


with:(推荐使用)

开启open返回文件句柄对象的上下文管理器(执行完with里的代码语句之后,会自动关闭文件)

  1. with open(file="text.txt", mode="r", encoding="utf-8") as f:
  2. c = f.read()
  3. print(c)

12、python文件的操作的更多相关文章

  1. python文件高级操作

    python文件高级操作和注意事项等等 文件过大保护 由于read是一次性读取文件所有的内容,如果文件100G,内存就会吃不消,所以推荐使用read(size)一次读取指定字节/字符(根据rb,或者r ...

  2. python文件相关操作

    Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...

  3. Python文件基础操作(IO入门1)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6422270.html 本文出自:[Edwin博客园] Python文件基础操作(IO入门1) 1. pyth ...

  4. python 文件读写操作(24)

    以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...

  5. Python 文件常见操作

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname()  ...

  6. Python 文件读写操作实例详解

    Python提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用file对象做大部分的文件操作 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前 ...

  7. python 文件 IO 操作

    Python 的底层操作 * 其实Python的文件IO操作方法,和Linux底层的差不多 打开 f = open(filename , "r") 后面的 "r" ...

  8. python文件的操作

    文件的操作,归根结底就只有两种:打开文件.操作文件 一.打开文件:文件句柄 = open('文件路径', '模式') python中打开文件有两种方式,即:open(...) 和  file(...) ...

  9. ~~Python文件简单操作~~

    进击のpython Python文件操作 在说Python的文件操作之前 我们可以先思考一个问题 平时我们是怎么对电脑中的文件进行操作的呢? 打开电脑⇨找到文件⇨打开文件⇨读文件⇨修改文件⇨保存文件⇨ ...

随机推荐

  1. Linux 内核管理类

    一个类由一个 struct class 的实例来定义: struct class { char *name; struct class_attribute *class_attrs; struct c ...

  2. 面试题 —— Ajax的基本原理总结

    Ajax 的全称是Asynchronous JavaScript and XML(异步的JavaScript 和 XML),其中,Asynchronous 是 异步 的意思,它有别于传统web开发中采 ...

  3. Vue的数据双向绑定和Object.defineProperty()

    Vue是前端三大框架之一,也被很多人指责抄袭,说他的两个核心功能,一个数据双向绑定,一个组件化分别抄袭angular的数据双向绑定和react的组件化思想,咱们今天就不谈这种大是大非,当然我也没到达那 ...

  4. Python 序列求和

    #基于Python2.7 多数OJ题库的第一题便是A+B,A+B+C此类求和问题,之前初学Python时是这么做的: while True: try: a,b,c=raw_input().split( ...

  5. .Net Core 3.0 发布为单独的可执行文件

    dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true

  6. DEVOPS技术实践_11:Jenkins集成Sonar

    前言 前面已经有介绍sonar的安装,简单应用,下面在简答的研究一下sonar和jenkins集成的简单使用,对于sonar的安装不做介绍 一 sonar的简单介绍 持续检查避免了低质量的代码,比如S ...

  7. 005 Ceph配置文件及用户管理

    一.Ceph的配置文件 Ceph 配置文件可用于配置存储集群内的所有守护进程.或者某一类型的所有守护进程.要配置一系列守护进程,这些配置必须位于能收到配置的段落之下.默认情况下,无论是ceph的服务端 ...

  8. 从零开始のcocos2dx生活(七)ParticleSystem

    CCParticleSystem是用来设置粒子效果的类 1.粒子分为两种模式:重力模式 和 半径模式 重力模式独占属性: gravity 重力方向,Vec2类型,可以分别指定不同方向的重力大小 spe ...

  9. c++简单实现循环队列

    栈的数据结构是先进后出,而队列的数据结构就是 一个出口一个入口入口只能入队,出口只能出队 实现的代码如下: /* 循环静态队列实现 2017年8月5日07:50:58 */ #ifndef __QUE ...

  10. 从0开发3D引擎(四):搭建测试环境

    目录 上一篇博文 了解自动化测试 单元测试 集成测试 端对端测试 通过打印日志来调试 了解运行测试 断点调试 通过Spector.js测试WebGL 通过log调试Shader 移动端测试 了解性能测 ...