一、文件操作

1、文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象

1 f = open("xxx") # 打开文件并获取文件对象
2 f.xxx  # 对文件进行某些操作
3 f.close() # 关闭文件

2、访问模式:

open函数除了接受一个文件名参数外,还可以设定文件的访问模式(open其他的参数不太能理解)

  • 无   以只读方式打开,文件必须存在
  • r     以只读方式打开,文件必须存在
  • w    以只写方式打开, 先删除原有内容再写入新内容,文件不存在创建新文件
  • a    以追加写方式打开,在原有文件末尾添加新内容,文件不存在创建新文件
  • +    r+可读写,文件必须存在,从开头开始写(只覆盖原内容的前面部分);
  •   w+可读写,文件不存在创建新文件,删除原内容后再写;
  •   a+可读写,文件不存在创建新文件,在原内容末尾开始写
  • t   文本模式(默认)
  • b    二进制模式,如rb, wb, ab, r+b, w+b, a+b等
  • U    通用换行符格式(将\r, \n, \r\n 都转化为\n),不建议使用

二、文件内置方法

假设现在有一个同级目录下的文件test.txt:

I was a handsome boy!
I love China!
Hello python!

1、输入:

  • read(n)->str 读取指定字节到字符串中,默认读到文件末尾
 1 f = open('test.txt')
 2 print(f.read(5))    # 读取5个字节
 3 print(f.read())      # 读取剩余所有字符串
 4 f.close()
 5
 6 """输出:
 7 I was
 8  a handsome boy!
 9 I love China!
10 Hello python!
11 """

  • readline(n)->str 读取指定字节到字符串中,默认读到行结尾(最后一行读到文件结尾)
 1 f = open("test.txt")
 2 print(f.readline(5))    # 读取5个字节
 3 print(f.readline())      # 读取到这一行的末尾
 4 f.close()
 5
 6
 7 """输出:
 8 I was
 9  a handsome boy!
10 """

  • readlines()->list 读取所有剩余的行,作为字符串列表返回,其中包括换行符
1 f = open("test.txt")
2 print(f.readlines())
3 f.close()
4
5 """输出:
6 ['I was a handsome boy!\n', 'I love China!\n', 'Hello python!']
7 """

2、输出:

  • write(str)->int 将指定字符串写入文件中,返回字符串的长度
1 f = open('test.txt', 'w+')
2 print(f.write("I love China!"))  # 返回写入的长度
3 f.close()

  • writelines(lst) 将一个字符串列表写入文件中,换行符不会被加入
1 f = open('test.txt', 'w')
2 f.writelines(['I am handsome!\n', 'I love China!\n', 'Hello Python!'])
3 f.close()
4 # 需要手动添加换行符

3、移动:

  • seek(offset, 0) 移动文件指针, 0表示从开头开始,1表示从当前位置,2表示从文件末尾,需要以b形式打开
 1 f = open("test.txt", 'rb')
 2 print(f.read(5))
 3 f.seek(12, 1)    # 文件指针从当前位置移动
 4 print(f.read(5))
 5 f.close()
 6
 7 """输出:
 8 b'I was'
 9 b'boy!\r'
10 """

  • tell()->int 告诉当前文件指针的位置

4、迭代:

文件支持和其他可迭代对象一样的迭代访问,并且与readlines()相比更高效

 1 f = open('test.txt')
 2 for eachLine in f:
 3     print(eachLine.strip())   # 需要手动地去除末尾的换行符
 4 f.close()
 5
 6 """输出:
 7 I was a handsome boy!
 8 I love China!
 9 Hello python!
10 """

5、其他:

  • fileno()->int 返回底层的打开文件的描述符
  • flush() 直接把内部缓冲区的数据立即写入文件
  • truncate()->int 截取文件到文件指针位置,可以指定或用f.tell(),返回截断后的长度

三、文件内置数据属性

  • f.closed 文件关闭时为True
  • f.encoding 文件所使用的编码
  • f.mode 文件打开时的访问模式
  • f.name 文件名
1 f = open('test.txt')
2 print(f.closed, f.encoding, f.mode, f.name)
3 f.close()
4
5 """输出:
6 False cp936 r test.txt
7 """


四、with语句

用于常常会忘带关闭文件,可以把文件对象的作用域放在with as中,当离开作用域后,文件自动关闭

1 with open('test.txt') as f:
2     pass

转载于:https://www.cnblogs.com/EdwardTang/p/5847399.html

python入门三:文件操作相关推荐

  1. python怎么读取文件-python怎么读写文件操作

    本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...

  2. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

  3. Python os模块文件操作(二)

    Python os模块文件操作(二) os模块对文件夹和文件的操作很多.可以先看: https://blog.csdn.net/weixin_43790276/article/details/9867 ...

  4. Python os模块文件操作(一)

    Python os模块文件操作(一) 一.文件描述符 在使用代码对文件进行操作时,为了指定操作的文件,避免不了要使用文件描述符,所以我们先介绍什么是文件描述符. 操作系统为了高效管理已经被打开的文件, ...

  5. python怎么读写文件-python怎么读写文件操作

    本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...

  6. python 对 yaml 文件操作

    python 对 yaml 文件操作 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Introduce : p ...

  7. Python实现tab文件操作

    Python实现tab文件操作 # -*- coding:gbk -*- import os class TABFILE:     def __init__(self, filename, dest_ ...

  8. python处理excel教程实例-python 读写excel文件操作示例【附源码下载】

    本文实例讲述了python 读写excel文件操作.分享给大家供大家参考,具体如下: 对excel文件的操作,python有第三方的工具包支持,xlutils,在这个工具包中包含了xlrd,xlwt等 ...

  9. python对PDF文件操作

    python对PDF文件操作 下载模块PyPDF2,以页为基本单位对PDF文件进行读写操作,无法直接操作每一页内容. PDF文件读操作 导入函数 from PyPDF2 import PdfFileR ...

最新文章

  1. cad打印样式ctb丢失_CAD制图软件中如何设置CAD打印样式表(CTB)?
  2. html资源加载,如何加载文件资源 (HTML)
  3. SublimeText3系列(1)-安装、设置、快捷键、常用插件
  4. 使用Android studio 创建svn分支
  5. 【Android车载系统 News | Tech 1】News 谷歌开发车载Android系统 2014-12-19
  6. 硬件工程师在笔试中容易遇到的题目
  7. 学习IDisposable,对于此中的不解……请高手指点
  8. C#实现浮动和多标签窗体解决方案---使用Dockpanel
  9. javascript设计模式研究学习-设计模式类别
  10. python server酱_Python使用微信收取通知
  11. 读取XML文件报 - Content is not allowed in prolog
  12. 部署速度翻6倍,知乎从0到1实现部署系统演进及优化
  13. 程序猿的爱情--2011-12-27
  14. 超级搜索术2-人脉搜索/分类整理
  15. 最好的3个Windows电脑上的azw3阅读器
  16. ApacheCN 翻译/校对/笔记整理活动进度公告 2019.10.11
  17. 数据库备份的几种解决方案
  18. 不做“学术媛‘,女博士毕业后遭妈妈吐槽“只学习不社交”
  19. 闲聊JavaScript
  20. 扫黑除恶Team第三次团队作业

热门文章

  1. c语言控制led以1s速度,C语言使用定时器的方法控制LED灯以1S的速度闪亮
  2. angular ts 表格_angular表格内容滚动实现
  3. python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)
  4. cad转dxf格式文件太大_如何玩转CAD看图?1分钟,一款完全免费的高效软件,解决所有看图...
  5. ionic获取手机通讯录
  6. 小程序获取用户地址信息api
  7. linux服务器常用维护命令,Linux服务器维护常用命令
  8. excel的ADO读取ORACLE,【VBA研究】利用ADO让普通人用excel读取oracle数据库表的通用办...
  9. java哈希映射干什么的_java – 为什么在哈希映射中有空值或空键是有用的?
  10. 信用卡号校验java_ES reduce 一行代码解决信用卡号验证问题