Python 完美诠释高内聚概念的 IO 流 API 体系结构(全网最详细)

第一次接触 Python 语言的 IO API 时,是惊艳的。相比较其它语言所提供的 IO 流 API 。

无论是站在使用者的角度还是站在底层设计者的角度,都可以称得上无与伦比。

很多人在学习 JAVA 语言中的 IO 流 API 时,几乎是崩溃的。其 API 太多、API 之间的关系过于复杂。类的层次结构需要花费很多时间才能搞明白。API 设计者未免有炫技之嫌。

Python 的 IO 流操作,才真正应了哪句话:人生苦短,我学 python

open( ) 函数 为操作起点,便捷、快速地完成所有操作,绝对算得上轻量级设计的典范,且高度诠释了“高内聚”概念。使用起来颇有“四两拨千金”的轻松。

通过了解 open( ) 函数的参数设计,其开闭设计思想可谓使用到了极致。

2. open( ) 函数 2.1 函数原型 def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True): …… 2.2 函数功能

打开一个指定位置的文件并返回 IO 流对象。

2.3 函数参数

Tip: open( ) 函数的参数看起来虽然有点多,在使用时,很多参数都可以采用默认设置,它会提供最优的工作方案。

file 参数: 指定文件位置。可以是一个字符串描述的文件路径,也可以是一个文件描述符(int 类型)。

Tip: 当使用字符串描述时,可以是绝对路径,也可以是相对路径。

绝对路径: 以绝对位置作为路径的起点。 不同的操作系统中会有差异性,windows 以逻辑盘符为绝对起点,Liunx 以 "http://www.likecs.com/" 根目录为绝对起点。

file=open("d:/guoke.txt")

Tip: 上述代码运行时,需要保证在系统的 d 盘下有一个名字 "guoke.txt" 的文件。

相对路径: 所谓相对路径指以某一个已经存在的路径(或叫参照目录、当前目录)做起点。 默认情况下,相对路径以当前项目目录作为参照目录。可以使用 os 模块 中的 getcwd( ) 方法获取当前参照目录的信息。

import os print(os.getcwd()) # 本代码的测试项目放在 d:\myc 下;项目名称:filedmeo # 输出结果 # D:\myc\filedmeo

如下代码需要保证在项目目录中存在 " guoke.txt "

file = open("guoke.txt") # 执行时, python 解释器会自动拼接一个完整路径 D:\myc\filedmeo\guoke.txt

参照目录 可以是不固定的,而是可变的。

改变相对路径的参考目录:

import os # 把 d 盘作为当前目录 os.chdir("d:/") print(os.getcwd()) file = open("guoke.txt") # python 解释器会从 d 盘根目录下查找 guoke.txt 文件

描述符: 使用 open( ) 函数打开一个文件后,python 解释器系统会为此文件指定一个唯一的数字标识符。可以用此描述符作为 open( ) 参数。

file = open("guo_ke.txt") # fileno() 获取文件的描述符 file1 = open(file.fileno())

Tip: 用户文件的描述符从 3 开始。0,1,2 是系统保留文件描述符。

0:表示标准输入(键盘)设备描述符。

file = open(0) print("请输入一个数字:") res = file.readline() print("回显:", res) ''' 输出结果 请输入一个数字: 88 回显: 88 '''

1:表示标准输出设备(显示器)描述符。

file = open(1, "w") file.write("you are welcome!") #类似于 print("you are welcome!") 的功能

2:表示标准错误输出设备(显示器)描述符。

file = open(2, "w") file.write("you are welcome!") #输出文字会以红色亮显

mode: 文件操作模式。默认为 "r" ,表示只读模式。

模式关键字 描述 异常
'r'   以只读方式打开文件   文件不存时,会抛出 FileNotFoundError 异常  
‘r+’   以可读、可写方式打开文件   文件不存时,会抛出 FileNotFoundError 异常  
‘w’   以可写方式打开文件   文件不存在时,创建一个字节 0 的空文件  
‘w+’   以可写、可读方式打开文件(清空原内容)   文件不存在时,创建一个字节 0 的空文件  
‘a’   以追加方式打开文件   文件不存在时,创建一个字节 0 的空文件  
‘a+’   以可追加、可读方式打开文件   文件不存在时,创建一个字节 0 的空文件  
‘t’   以文本文件格式打开文件   默认  
‘b’   以二进制格式打开文件    
‘x’   创建空文件并且可写   文件存在时,抛出 FileExistsError 异常  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfysf.html