钓鱼网站盗号下载网站建设与维护课件
目录
1.文件
1.1 读取操作
1.2 写操作
1.3 os:文件管理
1.4 os.path:获取文件属性
1.5 shutil:文件的拷贝删除移动解压缩
1.6 pickle:数据永久存储
1.文件
-
文件编码
编码是一种规则集合,记录内容和二进制间相互转换的逻辑。
最常用:UTF-8编码
1.1 读取操作
## 打开文件获取文件对象
# mode:读取模式(r:只读;w:删除原内容,若不存在则创建;a:追加内容,若不存在则创建)
# encoding:编码格式(一般UTF-8)
文件对象=open(file,mode,encoding)
## 读取指定长度字节
# 不指定则读全部
文件对象.read(num)
## 读取一行
文件对象.readline()
## 读取全部行,得到列表
文件对象.readlines()
## 循环文件行,一次循环得一行
for line in 文件对象
## 关闭文件对象
文件对象.close()
## 打开用完后,自动关闭
with open('文件名',) as f:data=file.read()
-
注:读取完后一定要close,不然文件会一直被占用。
1.2 写操作
f=open('1.txt','w') # 创建新文件,只允许写
f=open('filename','a') # 在已经存在的文件中追加内容
# 文件写入
f.write('zyy') # 并没有写入文件,而是在缓冲区,当flush或者close时写入文件
#(为了避免频繁打开硬盘浪费时间)
# 内容刷新
f.flush() # 内容写入硬盘
1.3 os:文件管理
用于文件管理。
# 创建新目录
os.mkdir(path)
# 删除空目录
os.rmdir(path)
# 返回目录中所有文件
os.listdir(path)
# 删除path指向的文件
os.remove(path)
# 重命名文件
# src,dist:命名前后路径
os.rename(src,dist)
# 改变文件权限
os.chmod(path,mode)
# 查询当前工作路径
os.getcwd()
# 改变当前工作目录
os.chdir(path)
# 执行shell命令
os.system(命令)
os.system('cmd')
1.4 os.path:获取文件属性
用于文件属性获取。
# 返回当前python执行脚本的路径 os.path.dirname(__file__) # 返回一个路径的目录名和文件名 os.path.split(path) # 分别检验路径是文件还是目录 os.path.isfile(path) os.path.isdir(path) # 检验给出路径是否真的存在 os.path.exists(path) # 返回路径path中的文件名 os.path.basename(path) os.path.dirname(path) # 分离文件名与扩展名 os.path.splitext() # 获取文件大小 os.path.getsize(name)
1.5 shutil:文件的拷贝删除移动解压缩
主要针对文件的拷贝删除移动。
# 拷贝文件 shutil.copy(file_path,dir_path) # 移动或重命名文件 # 如果有重名文件将报错 shutil.move(file_path,dir_path) # 移动到另外一个文件夹中 shutil.move(file_path,new_file_path) # 冲命名为新的绝对路径 # 拷贝文件夹 shutil.copytree(file_path,dir_path) # 拷贝所有文件到新文件夹 # 删除文件夹 shutil.rmtree(dir_path)
# 压缩文件 shutil.make_archive(base_name, format, root_dir, [base_dir]) # base_name : 创建的目标文件名,包括路径,减去任何特定格式的扩展。 # format : 压缩包格式。”zip”, “tar”, “bztar”或”gztar”中的一个。 # root_dir : 需要打包的文件夹路径。打包完成时存储在上一级目录。 # base_dir : 使用后会将base_dir作为路径,解压后有个有层级的文件夹,而仅非只有单独的打包内容。 # 解压文件 shutil.unpack_archive(filename, extract_dir, format) # filename:压缩文档的完整路径 # extract_dir:解压缩路径,默认为当前目录。 # format:压缩格式。默认使用文件后缀名代码的压缩格式。"zip", "tar", "bztar"或"gztar"中的一个。
1.6 pickle:数据永久存储
Python的pickle模块实现了基本的数据序列和反序列化。
序列化操作:能够将程序中运行的对象信息保存到文件中去,永久存储。
反序列化操作:能够从文件中创建上一次程序保存的对象。
-
pickle提供dumps(), loads(), dump(), load()
import pickle
tup0=('zyy',{"k1",9},[9,0],None)
# dumps(obj)
# 将python对象序列封装成二进制对象
pick1=pickle.dumps(tup0) # 将tup0转换成二进制对象
# loads(bytes_obj)
# 读取给定的二进制对象数据,并将其转换为python对象
mytup=pickle.loads(pick1) # 将pick1转成python对象
# pickle.dump(obj, file, protocol=None)
# 将obj以二进制形式保存到file中去
with open("a.txt",'wb')as f:pickle.dump(tup1,f)
# pickle.load(file)
# 将二进制对象文件转换成python对象
with open("a.txt",'rb')as f:tup2=pickle.load(f)
