数据保存:
1.内存,常用的变量
2.文件,文本内容、二进制文本内容
3.数据库
读文件:
1.文件路径
2.打开文件 open函数
参数1:文件的路径,绝对、相对路径
参数2:打开文件的模式,r\w\a
编码:encoding=“utf-8”
# open函数默认是r模式 gbk编码
3.操作文件内容,读、写(把原内容清空再写)、追加(原有内容不变,在它的最后写上新的内容)
4.文件关闭
练习
import os.path
# print(os.getcwd()) #当前工程路径
# print(os.path.exists("C:\\Users\\hyj\\Desktop\\a.txt"))#绝对路径
# print(os.path.exists(r"C:\Users\hyj\Desktop\a.txt")) #加r 用单斜杠
# print(os.path.exists("radom.py")) #相对路径
# if os.path.exists("C:\\Users\\hyj\\Desktop\\a.txt"):
# fp=open("C:\\Users\\hyj\\Desktop\\a.txt","r",encoding="utf-8") #读 默认
# # print(fp.read())
# # print(fp.readline()) #每次读一行,不能指定读某行
# #
# # lines = fp.readlines()
# # print(lines[1]) #指定读第一行
#
# # print(fp.read(1)) #对第一个字
# # print(fp.tell())#查看读到哪行,游标在哪行
# # fp.seek(0, 0)
# fp.close() #把所有待写入的内容保存到文件中
#
# # fp.seek(0,0) #回到文件最开始位置
# # fp.flush()#立刻写入
算法:统计一下文件行数
# #方法一
# # lines = fp.readlines()
# # print(len(lines))
#
# #方法二
# # count=0
# # while fp.readline():
# # count+=1
# # print(count)
#
#
程序中不close的影响:
1 python程序在执行完毕了,会自动close
2 对于服务器端,不close,可能造成数据不真正写入到文件中
3 对于服务器端,每次打开一个文件都不close,会把文件句柄(node 指向磁盘文件在磁盘、内存中位置的指针)用完[65535个]
读写文件一定要close
# r 读模式
# r+ 保留原有内容后,进行读写模式
# a+ 保留原有内容后,进行读写模式,且写入内容永远在文件的最后一行
# w 清空原有内容后,进行写模式
# w+ 清空原有内容后,进行读写模式
目录操作
import os
import shutil #删除目录的包
# print(os.getcwd())
# os.chdir("G:\\") #进到G盘
# print(os.getcwd())
# print(os.listdir()) #查看目录下的文件
# print(os.path.isdir("G:\\")) #是否是目录 True
# print(os.path.isfile("G:\\bootTel.dat")) #是否是文件
统计目录下有多少个文件
#方法一
print(len(os.listdir("G:\\google下载")))
#方法二
count=0
for i in os.listdir("G:\\google下载"):
count+=1
print(count)
新建和删除
# os.remove("G:\\testhhh\hello.txt") #删除文件夹报错,删除文件成功
#新建一个G:\\test1\\test2,再删除
# os.mkdir("G:\\test1") #一级目录
# os.mkdir("G:\\test1\\test2") #二级目录
# os.removedirs("G:\\test1") #报错。 包含子目录和文件则删除失败 G:\\test1\\test2
# os.removedirs("G:\\test1\\test2") #成功。 G:\\test1\\test2下都为空
print(os.path.isabs("G:\\test1\\test2")) #True 是否是绝对路径
练习题:在G盘下创建一个3级目录,文件夹从gloryroad1到gloryroad3,每个文件夹里放一个文本,内容写上文件名
os.chdir("G:\\") #进到G盘
if os.path.exists("G:\\gloryroad1"):
shutil.rmtree("G:\\gloryroad1")
print("the dir was deleted")
dir_name="gloryroad" #文件名前缀
for i in range(1,4): #循环3次
os.mkdir(dir_name+str(i)) #新建文件夹,拼接名字
os.chdir(dir_name+str(i)) #进到文件夹
with open(str(i)+".txt","w") as fp: #打开文件,写的方式
fp.write(str(i)+".txt") #写内容
fp.close()
print("ok")
os.rename("G:\\gloryroad111","G:\\gloryroad1") #重命名
print(os.path.getsize("G:\\gloryroad1")) #查看字节数