python -- 文件处理

文件处理:

一、模式参数

t :文本模式 (默认)。

b :二进制模式。

+ :打开一个文件进行更新(可读可写)。

r :以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

r+ :打开一个文件用于读写。文件指针将会放在文件的开头。

rb+ :以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w :打开一个文件只用于写入。

如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb :以二进制格式打开一个文件只用于写入。

如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。

如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,

即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。

也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

二、文件处理对象常用函数

open():打开文件(文件路径可以是相对路径,也可以是绝对路径)。

read():从文件的当前位置读取指定字符数,若未给定或者为负数,则读取所有内容。

readline():从文件读取整行,包括换行符 (从当前位置到行尾)。

readlines():读取所有行并返回列表。

tell():返回文件指针的当前位置。

seek():移动文件读取指针到指定位置。

write():向文件中写入指定字符串。

flush():刷新缓冲区,将缓冲区中的数据立刻写入文件,同时清空缓冲区。

close():关闭一个已打开的文件。文件关闭后不能再进行读写操作。

# --------------------------------
# 读取文件
# --------------------------------
# open() 打开文件,并返回一个文件对象
f = open('ch13_test.txt', 'r+')
# f = open(r'D:pathch13_test.txt')
print("文件名为:", f.name)

# read() 从文件读取指定的字符数,若未给定或为负,则读取所有
# 从文件头开始读取5个字符
print(f.read(5))

# 继续读取8个字符
print(f.read(8))

# readline() 从文件中读取整行
print(f.readline()) # 从当前位置到行尾(包括换行符)
print(f.readline(25)) # 读取指定数量的字符(如果当前行剩余字符数不够,遇换行符结束)
print(f.readline())

# 负数,读取整个文件的内容(从当前光标位置到文件末尾)
print(f.read(-1))

# 获取当前文件位置
post = f.tell()
print("当前文件位置为:", post)

# seek(offset[, whence]) 移动文件读取指针到指定位置
# 重新设置文件读取指针到开头
f.seek(0, 0) # whence 0:文件头;1:当前位置;2:文件尾

post = f.tell()
print("当前文件位置为:", post)

# readlines() 读取所有行并返回列表
i = 1
for line in f.readlines():
print("{}.{}".format(i, line), end="")
i += 1

# close() 关闭一个已打开的文件
f.close()


# --------------------------------
# 写入文件
# --------------------------------
# 打开一个文件进行读写(文件存在,打开;不存在,新建)
f = open('ch13_test2.txt', 'w+')
print("文件名为:", f.name)

# 定位到文件的末尾
# f.seek(0, 2)

str1 = "If you want to get something! You have to give! You have to learn, to insist! "
# 写入一个字符串
f.write(str1)

# 向文件写入一个序列字符串列表
str_list = ["If you really think it’s hard for you. ", "Then you quit. ",
"Once you quit. ", "Never complain. "]
f.writelines(str_list)

# 重新定位到文件的开始位置
f.seek(0, 0)

# 读取全部内容
print(f.read())

# 刷新缓冲区
f.flush()
# 关闭文件
f.close()

# 再次打开文件进行追加
f = open('ch13_test2.txt', 'a+')
f.write("Bye!")

f.seek(0, 0)
print(f.read())
f.close()
原文地址:https://www.cnblogs.com/Teachertao/p/11241461.html