Python处理文本文件

python处理文本文件,可以把文本的内容当做字符串变量进行查找、替换、插入等操作。

1.文件的打开与读取

# 文件的打开与读取
# 步骤:打开文件→读取文件→关闭文件

fw = open("text.txt","w")        # w新建文件,有写的权限
fw.close()                       # 关闭文件
fo = open("text1.txt","r+")      # r+读写
data = fo.read()                 # 读取文件内容
print(data)
fo.close()                       # 关闭文件

1.1 读取方式

fo = open("text1.txt","r+")
l1 = fo.readlines()              # 读取所有行
print(l1)

l2 = fo.readline()               # 读取一行
print(l2)

2.文件的写入

#文件的写入

#fo = open("text1.txt","a")       # a以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建
#fo.write("hello world!")         # 写入文件
#L1 = ["apple","banana","orange"]
#L2 = ["apple\n","banana\n","orange\n"]
#fo.writelines(L1)                # 把list中的字符串一行一行地写入文件,是连续写入文件,没有换行
#fo.writelines(L2)                # 换行的形式写到文件后面
#fo.close()

fo = open("text1.txt","r+")       # 是以指针的形式
#fo.read()                        # 先读出再写,不会被覆盖
#L1 = ["apple","banana","orange"]
L2 = ["apple\n","banana\n","orange\n"]
#fo.writelines(L1)
#fo.writelines(L2)
#fo.close()
print("1:",fo.read())             # 打印text1内容,指针移动到最后
print("2:",fo.read())             # 指针已经移动到最后,读取内容为空
fo.seek(0,0)                      # 指针移动到文件头部
# fileObject.seek(offset[, whence])
# offset——开始的偏移量,也就是代表需要移动偏移的字节数;
# whence:可取值0,1,2  默认值为 0。 
# 0 表示移动到一个绝对位置(从文件开始算起)
# 1 表示移到一个相对位置 (从当前位置算起)
# 2 表示对于文件尾的一个相对位置
print("3:",fo.read())             # 指针在头部,打印文本内容
fo.seek(0,0)
fo.seek(0,2)                      # 指针移动到文件尾部
print("4:",fo.read())             # 指针已经移动到最后,读取内容为空
fo.writelines(L2)                 # 不关闭是不保存的
fo.flush()                        # 提交更新  没关闭 先把写入的数据保存

3.查找

在文件中查找指定内容,可以使用re模块的findall()函数
re.findall(string,s)返回的是括号所匹配到的结果

import re
# 查找the的个数
fi = open("text2.txt","r")
count = 0
for s in fi.readlines():
	l = re.findall("the",s)
	if len(l) > 0:
		count = count + len(l)
print("search:",count," the")
fi.close()

4.替换

# 把text2.txt的the替换为an,并保存到text2Back.txt
fi = open("text2.txt","r")
fr = open("text2Back.txt","w")
for i in fi.readlines():           # 一行一行读
	fr.write(i.replace("the","an")) 
fi.close()
fr.close()
# 在原文件中将the替换为an
fi = open("file3.txt","r+")        # 不用w,w会清空数据
s = fi.read()                      # 读出 
fi.seek(0,0)                       # 指针移到头部
#从头写入
fi.write(s.replace("the","an"))
fi.close()

版权声明:本文为cookiebunny_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。