`
wwt_cxy001
  • 浏览: 9648 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

大话 Python:python 基础巩固 -- 文件 I/O 与 File 对象的应用

阅读更多

python 在操作文件 I/O 的时候,有两个非常重要的方面:一个是 open() 函数的掌握、另一个是 File 文件对象的相关函数的掌握。相比其他面向对象语言的文件流的用法是比较简便的,并且提供很多的文件打开模式算是比较优秀了。

1、全局函数 open()

open() 函数的可选参数还是比较多的,一般在读取文件时只使用文件路径、文件打开模式就可以完成大多数的使用场景。使用 open() 函数打开文件后返回的就是一个 File 文件对象,然后使用 File 对象的内部函数实现对文件的操作,需要注意的是在完成文件对象的操作后必须对文件进行关闭。

 

1open('/usr/load/download/20210320/test.txt',mode='r')

 

open() 函数的完整的语法格式

 

1open('/usr/load/download/20210320/test.txt', mode='r', buffering=-1
2encoding=None, errors=None, newline=None, closefd=True, opener=None)

 

open() 函数完整语法格式的各个可选参数代表什么样的含义

 

 1file: 必填参数项 -- 文件的打开的路径(支持相对路径和绝对路径)
2mode: 可选参数项 -- 文件打开模式,默认为只读模式
3常见的 mode 参数值的格式
4# 打开模式
5'b':-- 以二进制模式打开
6't':-- 以文本模式打开(缺省模式)
7'+':-- 以读写模式打开
8'U':-- 以通用换行符模式打开
9# 操作模式
10'r':-- 以只读模式打开
11'w':-- 以只写模式打开
12'a':-- 以追加模式打开
13# 组合模式,将打开模式与操作模式进行组合使用,下列为常见组合
14'r+':-- 以文本读写模式打开
15'w+':-- 以文本读写模式打开
16'a+':-- 以文本读写模式打开
17buffering: 可选参数项 -- 设置缓冲,缓冲的设置是为了减少 IO 的使用,一般设置 0(二进制模式关闭缓冲),1(文本模式一行的缓冲),>1(初始化缓冲的大小)
18encoding: 可选参数项 -- 文件编码,一般情况使用 utf-8 编码即可
19errors: 可选参数项 -- 设置报错级别,为 None 时不设置,为 strict 时字符编码出现问题会报错,为 ignore 时忽略编码问题
20newline: 可选参数项 -- 区分换行符,只对文本模式有效,一般情况下可以取值None,'\n','\r','','\r\n' 来自定义换行
21closefd: 可选参数项 -- 传入的file参数类型,为 True 时参数类型表示文件名称,False 时为文件描述符
22opener: 可选参数项 -- 设置自定义开启器,返回值必须是一个打开的文件描述符。

 

2、File 文件操作对象

 

  File -> file_obj.write(string)

 

1# 使用只写的模式打开文件
2file_obj = open("/usr/load/test.txt""w")
3# 定义原始数据
4string = "Python 集中营"
5# 将字符串写入文件
6file_obj.write(string)
7# 关闭文件
8file_obj.close()

 

  File -> file_obj.tell()

 

1# 使用读写的模式打开文件
2file_obj = open("/usr/load/test.txt""rw+")
3current_data = file_obj.tell()
4print "当前数据位置: ",current_data 

 

  File -> file_obj.read([size])

 

1# 使用读写的模式打开文件
2file_obj = open("/usr/load/test.txt""rw+")
3# 获取文件名称
4print "文件名为: ", file_obj.name
5# 读取 5 个字节
6data1 = file_obj.read(5)
7# 读取整个文件
8data2 = file_obj.read(-1)

 

  File -> file_obj.next()

 

 1# 使用读写的模式打开文件
2file_obj = open("/usr/load/test.txt""rw+")
3# 获取文件名称
4print "文件名为: ", file_obj.name
5for i in range(10):
6    # 读取下一行
7    data_line = file_obj.next()
8    print "第 %d 行 - %s" % (i, data_line)
9# 关闭文件
10file_obj.close()

 

  File -> file_obj.readline([size])

 

1# 使用读写的模式打开文件
2file_obj = open("/usr/load/test.txt""rw+")
3# 获取文件名称
4print "文件名为: ", file_obj.name
5# 读取一行的 10 个字节
6data_line1 = file_obj.readline(10)
7# 读取一行
8data_line2 = file_obj.readline()

 

  File -> file_obj.readlines([size])

 

 1# 使用读写的模式打开文件
2file_obj = open("/usr/load/test.txt""rw+")
3# 获取文件名称
4print "文件名为: ", file_obj.name
5# readlines() 函数读取所有行
6# 遍历每行
7for data_line in file_obj.readlines():   
8    # 去除首尾多余的空格                        
9    data_line = data_line.strip()                             
10
11# 关闭文件
12file_obj.close()

 

  File -> file_obj.flush()

 

1# 使用读写的模式打开文件
2file_obj = open("/usr/load/test.txt""rw+")
3# 获取文件名称
4print "文件名为: ", file_obj.name
5# 刷新缓冲区
6file_obj.flush()
7# 关闭文件
8file_obj.close()

 

  File -> file_obj.close()

 

1# 使用读写的模式打开文件
2file_obj = open("/usr/load/test.txt""rw+")
3# 获取文件名称
4print "文件名为: ", file_obj.name
5# 关闭文件
6file_obj.close()

 

更多精彩前往微信公众号【Python 集中营】,专注后端编程实战,原创文章每天更新!

 

在这里插入图片描述

0
1
分享到:
评论

相关推荐

    spring-cloud使用的各种示例

    - [spring-cloud-sleuth-zipkin](https://github.com/ityouknow/spring-cloud-examples/tree/master/spring-cloud-sleuth-zipkin): 利用Sleuth、Zipkin对Spring Cloud应用进行服务追踪分析 - [spring-boot-admin-...

    大话JAVA:从零基础到数据库、WEB开发.

    大话Java:从零基础到数据库、Web开发以漫画的形式,由浅入深、循序渐进地介绍Java编程的常用技术和方法,内容涵盖了Java基本语法结构、面向对象特征、集合框架体系、异常处理、GUI编程、MySQL数据库、JDBC数据库...

    大话数据分析:Tableau数据可视化实战----数据集

    《大话数据分析:Tableau数据可视化实战》的数据集是一份重要的资源,对于想要学习和提升Tableau数据可视化技能的人来说极具价值。Tableau是一款强大的商业智能工具,它允许用户通过直观的拖放界面来探索和可视化...

    Python基础语法习题参考(0-9关).docx

    在初学者阶段,掌握Python的基础语法至关重要。以下是一些关键的知识点,这些知识点在提供的文件中有所体现: 1. **print()函数**:这是Python中最基本的输出函数,用于将指定的文本或变量值打印到控制台。在打印...

    大话Python|基础语法(上)

    大话Python|基础语法(上)

    大话存储:存储系统底层架构原理极限剖析(终极版)(完整PDF版)

    总之,《大话存储》一书深入浅出地讲解了存储系统底层架构的各个方面,从基础概念到前沿技术,涵盖了存储领域的广泛知识。无论是初学者还是资深IT从业者,都能从中获得宝贵的洞见,提升对存储系统的理解和应用能力。

    大话存储:存储系统底层架构原理极限剖析(终极版)3

    大话存储:存储系统底层架构原理极限剖析(终极版)第3部分 大话存储:存储系统底层架构原理极限剖析(终极版)第3部分大话存储:存储系统底层架构原理极限剖析(终极版)第3部分

    一对象误用类易错成语总结梳理.pdf

    ### 一对象误用类易错成语总结梳理 在汉语的学习和使用过程中,正确理解和运用成语至关重要。成语作为汉语中的瑰宝,不仅蕴含着丰富的文化内涵,而且在日常交流和文学创作中扮演着不可或缺的角色。然而,由于成语的...

    用比喻方法大话python语言通俗易懂.pdf

    本文用比喻的方法大话python语言 通俗易懂 很容易上手,把深奥的文字变成形象化 的语言Python语言是什么? 想象你有一个非常聪明的机器人朋友,名字叫Python。Python能听懂你用简单的英语(编程语言)告诉它的指令,...

    《大话设计模式》C++实现-design-patterns-cpp.zip

    《大话设计模式》C++实现-design-patterns-cpp

    [大话存储:网络存储系统原理精解与最佳实践].张冬.扫描版

    《大话存储:网络存储系统原理精解与最佳实践》是张冬所著的一本专业书籍,主要探讨网络存储系统的基本原理与实际应用。从描述中可以看出,这本书不仅提供了网络存储系统的理论知识,还提供了最佳实践案例,帮助读者...

    大话存储:存储系统底层架构原理极限剖析(终极版)_张冬2015.01_P989

    大话存储:存储系统底层架构原理极限剖析(终极版)_张冬2015.01_P989

    大话JAVA:从零基础到数据库、WEB开发

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向...

    大话处理器:处理器基础知识读本

    从逻辑电路基础开始,逐步深入到芯片设计的每一个细节,最终揭示了芯片制造的神秘面纱。制造芯片如同点沙成金,工艺极其复杂,对技术精度的要求也极高。 《大话处理器》不仅是一本技术读物,更是一部科普书籍。作者...

    大话存储---网络存储系统原理精解与最佳实践.pdf

    《大话存储——网络存储系统原理精解与最佳实践》这本书深入浅出地探讨了网络存储系统的本质和应用,旨在帮助读者理解并掌握这一领域的核心知识。以下是对书中的主要知识点进行的详细解读: 1. **网络存储系统基础*...

    Python设计模式之状态模式原理与用法详解

    本文实例讲述了Python设计模式之状态模式原理与用法。分享给大家供大家参考,具体如下: 状态模式(State Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 下面是一个状态模式的...

    电子阅读版:大话移动APP测试(Android与iOS平台的测试应用指南)

    《大话移动APP测试》是一本详尽介绍Android与iOS平台测试应用的指南,旨在帮助读者深入理解并掌握移动应用的测试技术。本书全面覆盖了移动端的测试领域,包括平台特性、设备兼容性、功能测试、性能测试、安全测试等...

Global site tag (gtag.js) - Google Analytics