python自学入门(打卡六)2022-10-30

该博客围绕Python展开,介绍了数据保存方式,包括内存、文件和数据库。详细讲解了读文件的步骤,如指定路径、用open函数打开、操作内容及关闭文件。还提及不close文件的影响,强调读写要close。此外,有目录操作内容,如统计文件数、新建删除等,并给出相关练习题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据保存:
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")) #查看字节数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值