Day 10(下):os模块,文件管理和递归

首页 » Python » 正文

2020/09/08

使用pickle 序列化

序列化就是将对象或者多个对象转化成“串行化”数据形式,存储到硬盘或通过网络传输到其他地方。把对象转化成数据流,流向硬盘,或者网络。
pickle.dump(obj, file)obj 就是要被序列化的对象,file 指的是存储的文件
pickle.load(file)反序列化到文件名中

import pickle
with open(r"d:/data.dat","rb") as f:
    a1 = pickle.load(f)
    a2 = pickle.load(f)
    a3 = pickle.load(f)
    print(a1)
    print(a2)
    print(a3)

序列化和反序列化的对象不一样

csv文件的操作

CSV常用于数据交换、Excel文件和数据库数据的导入和导出。
和excel文件不同。

  1. 值没有类型所有值都是字符串
  2. 不能指定字体颜色
  3. 不能指定单元格的宽高,不能合并单元格。
    互联网中的数据库大部分都可以用表格来表示和储存

csv.reader 读取文件

可以用csv.reader 来读取文件,返回的是一个列表对象,每一行为一个元素

csv.writer 编写文件

要注意在写入的时候要提前建立对象

os 和os.path模块

直接对操作系统进行操作。

os.system 调用操作系统的命令

os.system("notepad.exe")

os.startfile 直接调用可执行文件

import os
os.startfile(r"C:/ProgramFiles(x86)/Tencent/WeChat/WeChat.exe")

os 的文件和文件目录操作

如果想对文件进行其他的操作就需要其他的方法
Day 10(下):os模块,文件管理和递归

os.path 模块

os.path 提供了和目录相关的操作
Day 10(下):os模块,文件管理和递归

walk()递归遍历所有文件的目录

walk()会返回一个 3 个元素的元组,(dirpath, dirnames, filenames),
dirpath:要列出指定目录的路径
dirnames:目录下的所有文件夹
filenames:目录下的所有文件

import os
all_files = []
path = os.getcwd()
list_files = os.walk(path)
for dirpath,dirnames,filenames in list_files:
    for dir in dirnames:
        all_files.append(os.path.join(dirpath,dir))
    for name in filenames:
        all_files.append(os.path.join(dirpath,name))
for file in all_files:
print(file)

shutil模块(拷贝和压缩)

shutil 模块是 python 标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等;还可以做文件和文件夹的压缩、解压缩操作。

import shutil
#copy 文件内容
shutil.copyfile("1.txt","1_copy.txt") #后面的名字如果重复了 就会出错


#"音乐"文件夹不存在才能用。
shutil.copytree("电影/学习","音乐",ignore=shutil.ignore_patterns("*.html","*.htm"))
# 将文件夹“电影/学习”下面的内容拷贝到文件夹“音乐”下。拷贝时忽略所有的 html 和 htm 文件。运行

Day 10(下):os模块,文件管理和递归

递归算法

其实就是自己调自己这个功能。
递归结构中包含两个部分:

  1. 递归头:一般用if 语句,确定好怎么结束,什么条件下不用递归体
  2. 递归体:就是自身的方法
def factorial(n):
    if n==1:
    return 1
    else:
    return n*factorial(n-1)
a = factorial(10)
print(a)

Day 10(下):os模块,文件管理和递归
由上图可以看出在使用递归算法的时候,计算机需要很多的栈帧,这样极大的消耗了系统的栈堆量。所以在使用递归调用的层次多了 就会比循环要慢。 优点就是,程序比较简单。

拜师教育学员文章:作者:1249-刘同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Day 10(下):os模块,文件管理和递归》 发布于2020-09-08

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录