1.判断文件目录是否存在,目录中有哪些文件
1.1 open函数
第二个参数,指定打开文件的方式:
r :以只读的方式打开文件
w :以写的方式写入文件(覆盖写)
a :以追加的方式写入文件
x :新建文件
(默认以只读的方式打开)
(如果是二进制文件: wb 二进制写的方式 wr 二进制读的方式)
# fp 读出来的文件对象
# 指定编码方式为utf-8
fp = open("yu.txt", encoding="utf-8")
print(fp.read())
fo.close()
# 要在输出完后再释放资源,不然就读不到内容了
# new line
fp.read() :一次性读完所有内容
fp.readline() :一次只读一行
fp.readlines() :每一行作为一个元素放在一个列表中保存,一次性读完文件的所有内容
fp.close()
操作完文件后一定要释放掉文件所占用的资源,如果不手动释放就会一直保存在内存中
1.2. with open 函数
with open函数会在读完文件以后自动帮你释放内粗资源,不用我们手动的去释放资源
with open("yu.txt", "r", encoding="utf-8") as fp:
print(fp.read())
1.3. 读入json文件,写入json文件
读文件
try:
with open("yu.txt", "r", encoding="utf-8") as fp:
file = json.load(fp)
except:
file = {}
# 用try except去接受异常,如果没有想要读取的json文件就创建一个名字为file的字典
# 如果有json文件就将文件读出,将读出的内容赋值给file
写文件
with open("yu.txt", "w", encoding="utf-8") as fp:
json.dump(file, fp)
(但是如果把字典转为json格式的时候,是不能直接转的,只能将字典的数据传到json文件里面,这样操作相对较麻烦)
1.4.pickle读文件写文件
读文件
try:
with open(file_name, "rb") as fp:
self.userdict = pickle.load(fp)
except:
self.userdict = {}
# pass 是python的占位符,防止报错,但是什么也不做
写文件
with open(file_name, "wb") as fp:
pickle.dump(self.userdict, fp)
2.python一些常用的库
2.1 time库
time库是python中处理时间的标准计算机时间的表达
time库有三类函数:
时间获取:time() ctime() gmtime()
时间格式化: strftime() strptime()
程序计时:sleep() perf_counter()
import time
from datetime import date
# time() :获取当前时间截,即计算机内部时间值,浮点数
print(time.time())
# 1682262765.754957
# ctime() : 获取当前时间并以易读方式表示,返回字符串
print(time.ctime())
# Sun Apr 23 23:14:25 2023
# gtime() : 获取当前时间,表示为计算机可处理的时间格式
print(time.gmtime())
# strftime()方法 : 格式化字符串日期/时间说明值范围和实例
# %Y年份0000~9999,例如:1900
# from datetime import date
dt = date.today()
print(dt)
# 2023-04-24
nd = dt.strftime('%Y:%m:%d')
print(nd)
# 2023:04:24
# strptime(str,tpl) :是字符串形式的时间值,tpl是格式化的模板,用来定义输入效果
timestr = date.today()
timestr = str(timestr)
newdate = time.strptime(timestr, '%Y-%m-%d')
2.2 os库
os库常用做路径操作,进程管理,环境参数等几个类
路径操作:os.path子库,处理文件路径及信息
进程管理:启动系统中其他程序
环境参数:获得系统软件硬件信息等环境参数
import os
import time
# os.path.abcapth(path) 返回path在系统中的绝对路径
print(os.path.abspath("01.文件操作.py"))
# C:\Users\lenovo\Desktop\课堂练习\开发\331py文件操作\01.文件操作.py
# os.path.normpath(path) 统一使用/作为分隔符分割路径
print(os.path.normpath('C:\\Users\\lenovo\\Desktop\\课堂练习\\开发\\331py文件操作\\01.文件操作.py'))
# 同一将分隔符\\替换成\
# C:\Users\lenovo\Desktop\课堂练习\开发\331py文件操作\01.文件操作.py
# os.path.repath(path) 返回当前程序与文件之间的相对路径
print(os.path.relpath('02.计算生日.py'))
# 02.计算生日.py
# os.path.basename(path) 返回path中最后的文件名称
print(os.path.basename("../331py文件操作"))
# 331py文件操作
# os.path.exists(path) 判断文件对应文件目录是否存在
print(os.path.exists("01.文件操作.py"))
# True
print(os.path.exists("..//331py文件操作"))
# True
# os.path.isdir(path) 判断path所对应的的是否是目录,如果是目录返回true不是就返回false
print(os.path.isdir("01.文件操作.py"))
#False
# os.oath.isfile(path) 判断path所对应的是否是文件,如果是文件就返回true,如果不是文件夹就返回false
print(os.path.isfile("01.文件操作.py"))
# True
# os.path.getatime(path) 返回path对应文件或者目录上一次访问时间
c = os.path.getatime("01.文件操作.py")
print(c)
# 1682251369.949953
print(time.ctime(c))
# Sun Apr 23 20:02:49 2023