最近在网课中学习了Python的文档操作,所以把老师上课讲的都记录了下来,作为笔记
打开文档
可直接使用open函数,使用形式为1open(文档地址,操作形式)
操作形式有以下几个1
2
3
4
5
6
7r 只读模式
w 覆盖写模式
x 创建写模式
a 追加写模式
b 二进制文档模式
t 文本文档模式
+ 与r/w/x/a一同使用,在原功能基础上增加读写功能
当操作形式参数为空时,默认为只读模式与文本文档模式
还有几个可选参数,例如encoding,可设置编码格式
看下面这个例子1fh = open("D:/blog/文本1.txt", "rt", encoding = "utf-8")
这个语句就是以只读文本文档的模式,编码格式为”utf-8”,打开文本1
注意:第一个参数中的文档地址,”"要以”/“或”\“来表示
关闭文档
用close函数即可1fh.close()
注意:文档打开后一定要关闭,否则容易出问题
文档读取
有这几个函数1
2
3a.read(size = -1) 读入全部内容,如果给出参数,读入前size长度
a.readline(size = -1) 读入一行内容,如果给出参数,读入该行前size长度
a.readlines(hint = -1) 读入文档所有行,以每行为元素形成列表,如果给出参数,读入前hint行
看下面一个例子1
2
3
4
5
6
7
8
9fh = open("D:/blog/文本1.txt", "rt", encoding = "utf-8")
x = 0
while True:
line = fh.readline()
if(len(line) == 0 and x >= 10):
break
print(line)
x += 1
fh.close()
这段代码的作用便是一行行的读取文本文档,并将每行输出,当读到第十行以后的空行时,停止读取
文档的写入
有这几个函数1
2fh.write(s) 向文档写入一个字符串或字节流
fh.writelines(lines) 将一个元素全为字符串的列表写入文档(拼接以后写入到一行当中)
看一个例子1
2
3
4
5
6
7
8data = "一起学python"
fh = open("D:/blog/文本1.txt", "w")
fh.write(data)
fh.close()
data2 = "学好python"
fh2 = open("D:/blog/文本1.txt", "w")
fh2.write(data2)
fh2.close()
运行以后打开文档,会发现结果是这样的
因为以“w”模式打开文档,会将原内容覆盖
想要正确读写文档,只需改变文档打开模式为”a“或”a+“1
2
3
4
5
6
7
8data = "一起学python"
fh = open("D:/blog/文本1.txt", "w")
fh.write(data)
fh.close()
data2 = "学好python"
fh2 = open("D:/blog/文本1.txt", "a+")
fh2.write(data2)
fh2.close()
结果是这样
注意:打开文档后一定要关闭文档,否则文档内容无法更新
改变文档操作指针位置1fh.seek(offset) 改变当前文档操作指针的位置,offset含义:0-文档开头 1-当前位置 2-文档结尾
看一个例子1
2
3
4
5
6
7fh = open("D:/blog/output.txt", "w+")
ls = ["中国", "法国", "美国"]
fh.writelines(ls)
fh.seek(0)
for line in fh:
print(line)
fh.close()
代码作用是将写入文档的内容输出
注意:fh.seek(0)一定要添加,否则什么都输出不了,因为没有改变位置