(一)文件操作
1.什么是文件?
如图所示:
2.文件的作用:保存数据,可以让程序下一次执行的时候直接使用。
(二)文件的读写
1.读取文件的三步骤:打开文件、读取文件、(关闭文件可以不写)。
2.文件的访问模式:
3.读取整个文件
with open('D:\\test.txt')as file:
#1.一次读取文件所有内容
# contents=file.read()
#2.读取文件的一行
# contents = file.readline()
#3.读取文件所有行
contents = file.readlines()
for line in contents:
print(line)
注:文件无须手动关闭,Python自会在适合的时间关闭。
结果演示:
朝辞白帝彩云间,千里江陵一日还。
两岸猿声啼不住,轻舟已过万重山。
4.统计此诗中逗号的数量
#1.统计逗号个数
with open('D:\\test.txt')as file:
#2.一次读取文件所有内容
contents=file.read()
words=[]
for word in contents:
words.append(word)
print(words)
print(words.count(','))
结果演示:逗号总数量==2
5.文件复制
#1.复制文件
with open("D:\\aim.txt",'a')as aimFile:
with open('D:\\test.txt')as file:
#2.一次读取文件所有内容
contents=file.read()
aimFile.write(contents)
print("成功复制!")
(三)文件的定位读写
1.获取当前读写的位置
with open("D:\\test.txt","r")as file:
str=file.read(2)
print("读取的数据是:",str)
position=file.tell()
print("文件的当前位置:",position)
结果演示:
朝辞白帝彩云间,千里江陵一日还。
两岸猿声啼不住,轻舟已过万重山。
读取的数据是: 朝辞
文件的当前位置: 4
2.定位到某个位置
- 如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()。
seek(offset, from)有2个参数
offset:偏移量
from:方向
0:表示文件开头
1:表示当前位置
2:表示文件末尾
3.定位到某个位置
with open("D:\\test.txt","r")as file:
str=file.read(2)
print("读取的数据是:",str)
position=file.tell()
print("文件的当前位置:",position)
#重新设置当前位置
file.seek(5.0)
position = file.tell()
print("文件的当前位置:", position)
结果演示:
读取的数据是: 朝辞
文件的当前位置: 4
文件的当前位置: 5
(四)文件的重命名、删除
1.有些时候,需要对文件进行重命名、删除等一些操作,python的os模块提供此功能。
2.文件重命名,os模块中的rename()可以完成对文件的重命名操作,rename(需要修改的文件名, 新的文件名)
实例演示:
import os
os.rename("D:\\三味书屋.txt", "D:三国演义.txt")
3.删除文件,os模块中的remove()可以完成对文件的删除操作,remove(待删除的文件名)。
实例演示:
import os
os.remove("D:\\三国演义.txt")
(五)文件夹的相关操作
说明:实际开发中,有时需要用程序的方式对文件夹进行一定的操作,比如创建、删除等,就像对文件操作需要os模块一样,如果要操作文件夹,同样需要os模块。
1.创建文件夹
import os
os.mkdir("D:\\test.txt")
2.获取当前目录
import os
os.getcwd()
3.改变默认目录
import os
os.chdir("../")
4.获取目录列表
import os
os.listdir("./")
5.删除文件夹
import os
os.rmdir("D:\\test.txt")
(六).替换文本字符串
他正乘上小船,刚要解缆出发,忽听岸上传来,悠扬踏歌之声。
看那桃花潭水,纵然深有千尺,怎能及汪伦送他之情。
1.将文本中的“他”字符串替换成“我”
#1.参数:file路径
#2.参数:old_str旧字符
#3.参数:new_str新字符
def alter(file,old_str,new_str):
#4.定义一个变量存储字符串
file_data = ''
with open(file ,'r')as f:
for line in f:
if old_str in line:
#5.使用replace()方法替换字符串
line=line.replace(old_str,new_str)
file_data+=line
with open(file, 'w')as f:
f.write(file_data)
alter('test.txt','他','我 ')
print("成功修改!")
结果演示:
我正乘上小船,刚要解缆出发,忽听岸上传来,悠扬踏歌之声。
看那桃花潭水,纵然深有千尺,怎能及汪伦送我之情。