python教程:IO模块使用教程

python教程:IO模块使用教程

1.简介

读写文件是常见的IO操作,python内置了读写文本的函数。

读写文件的模式描述如下:

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

2.读取文件

文本信息如下:
在这里插入图片描述

1读取文件的基本信息

# 只读方式打开文本文件
f = open("./readout.txt", "r")
# 读取文件信息
print ("文件名: ", f.name)
print ("是否已关闭 : ", f.closed)
print ("访问模式 : ", f.mode)
print ("末尾是否强制加空格 : ", f.softspace)
# 关闭文件
f.close()

在这里插入图片描述

2一次性读取

 # 只读方式打开文本文件
 f = open("./readout.txt", "r")
 # 一次性读取全部内容,不安全
 print ("一次性全部读取:
", f.read())
 f.close()

在这里插入图片描述

3多次读取

# 只读方式打开文本文件
f = open("./readout.txt", "r")
# 文件长度
# print "文件长度:", len(f.read())
# 从文件的开头读取13个字节,超过文本长度则读取全部
print ("第一次读取:
", f.read(13))
# 继续读取4个字节
print ("第二次读取:
", f.read(4))
f.close()

在这里插入图片描述

4按行读取

# 只读方式打开文本文件
f = open("./readout.txt", "r")
# 分行读取
print ("读取第一行:
", f.readline().strip())
print ("读取第二行的4个字节:
", f.readline(4))
f.close()

在这里插入图片描述

5file作为迭代器

# 只读方式打开文本文件
f = open("./readout.txt", "r")
for index in range(3):
    # file自身作为迭代器
    line = f.next()
    print (line.strip())

在这里插入图片描述

6按行读取并存为list

# 只读方式打开文本文件
f = open("./readout.txt", "r")
# 一次性读取所有行并且返回list
fileList = f.readlines()
# ["line one
", "line two
", "xe4xb8xadxe6x96x87xe6xb5x8bxe8xafx95"]
print ("List列表:
", fileList)
for line in fileList:
    # #去掉每行头尾空白
    print (line.strip())
f.close()

在这里插入图片描述

7读取二进制文件

 # 打开二进制文件,例如图片、视频
 f = open("./readpicture.jpg", "rb")
 print (f.read())
 f.close()

在这里插入图片描述

3.写入文件

1写入文件的基本信息

# 只写方式打开文件,写入文本
f = open("./writein.txt", "w")
# 读取文件信息
print "文件名: ", f.name
print "是否已关闭 : ", f.closed
print "访问模式 : ", f.mode
print "末尾是否强制加空格 : ", f.softspace
# 关闭文件
f.close()

2多种写入

"""
学习中遇到问题没人解答?小编创建了一个Python学习交流群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
"""
# 只写方式打开文件,写入文本
f = open("./writein.txt", "w")
# 写入文本
f.write("line one")
f.close()

# 只写方式打开文件,以序列方式写入
f = open("./writein.txt", "w")
contentList = ["line one 
", "line two 
", "中文测试 
"]
# 写入序列
f.writelines(contentList)
f.close()

4.其他函数 file.tell() 、file.seek(offset,[],whence)

# 以读写方式打开文件,以序列方式写入
f = open("./writein.txt", "w+")
contentList = ["line one 
", "line two 
", "中文测试 
"]
# 写入序列
f.writelines(contentList)
# 指针位置:file.tell()
print "写入后指针所在位置:", f.tell()
# 指针偏移:file.seek(offset[, whence])
# 前者为偏移量,后者为指针位置(默认0表示初始位置,1表示当前位置,2表示末尾位置)
f.seek(0)
print "偏移后指针所在位置:", f.tell()
print "数据:
", f.read()
f.close()

在这里插入图片描述

5.使用with语句配合IO操作

 with open("/path/to/file", "r") as f:
       print f.read()

注:该种方式可以自动调用close()方法,避免出错!!!

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » python教程:IO模块使用教程