Python学习笔记

关于设计模式(二)

(还包含模块和包的知识内容)

读取图片文件,实现文件的拷贝

with open('图片名','rb') as f:   #b是指二进制
    with open('新建文件名','wb') as w:
        for line in f.readlines():
            w.write(line)
print(’图片拷贝完成‘)

pickle序列化与反序列化

 pickle.dump(obj,file)   obj就是要被序列化的对象,file指的是存储的文件
pickle.load(file)  从file读取数据  反序列化成对象

import  pickle
with open(r"d:\data.dat","wb") as f:
        a1="jiaqi"
        a2=234
       a3=[20,30,40]
     #将对象序列化到文件中
      pickle.dump(a1,f)
      pickle.dump(a2,f)
      pickle.dump(a3,f)
#将获得的数据反序列化成对象
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文件中:
值没有类型,所有值都是字符串
不能指定单元格的宽高,不能合并单元格
不能指定字体颜色等样式
没有多个工作表
不能嵌入图像图表

#CSV文件的读取和写入
import csv
with open("dd.csv","r") as f:    #dd为文件名
       a_csv = csv.reader(f)
       for  row in a_csv:       #遍历文件里的内容
              print(row)             #读取
with open("ee.csv","r") as f:     #ee为文件名
      b_csv = csv.writer(f)
      b_csv.writerow(["ID","姓名","年龄"])
      b_csv.writerow(["1001","jiajia","18"])

     c = [["1002","dfg","19"],["1003","fhj","20"]]
     b_csv.writerows(c)            #写入

os和os.path模块

os模块可以帮助我们直接对操作系统进行操作,我们可以直接调用操作系统的可执行文件、命令,
直接操作文件、目录等等
os.system可以帮助我们直接调用系统命令
os.system调用windows系统的记事本程序

import os
os.system("notepad.exe")
os.system调用windows系统中ping命令
import os
os.system("ping www.baidu.com")

#GBK
正在 Ping www.a.shifen.com [36.152.44.95] 具有 32 字节的数据:
来自 36.152.44.95 的回复: 字节=32 时间=35ms TTL=54
来自 36.152.44.95 的回复: 字节=32 时间=24ms TTL=54
来自 36.152.44.95 的回复: 字节=32 时间=26ms TTL=54
来自 36.152.44.95 的回复: 字节=32 时间=21ms TTL=54

36.152.44.95 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 21ms,最长 = 35ms,平均 = 26ms

OS模块下常用操作文件的方法

remove(path)删除指定的文件
rename(str.dest) 重命名文件或者目录
stat(path) 返回文件的所有属性
listdir(path)返回path目录下的文件和目录列表
mkdir(path) 创建目录
makedirs(path1/path2/path3/...)创建多级目录
madir(path) 删除目录
removedirs(path1/path2/path3/...)删除多级目录
getcwd()返回当前工作目录:current work dir
chdir(path)把path设为当前工作目录
walk()  遍历目录树
sep当前操作系统所使用的路径分隔符

os.path模块

isabs(path) 判断path是否为绝对路径
isdir(path)  判断path是否为目录
isfile(path) 判断path是否为文件
exists(path) 判断指定路径的文件是否存在
getsize(filename) 返回文件的大小
abspath(path)返回绝对路径
dirname(p)  返回目录的路径
getatime(filename) 返回文件的最后访问时间
getmtime(filename)返回文件的最后修改时间
walk(top,func,arg) 递归方式遍历目录
join(path,*paths) 连接多个path
split(path)  对路径进行分割
splitext(path)从路径中分割文件的扩展名
import  os
import  os.path         #from os import path
print(os.path.isabs("文件名"))

path = os.path.abspath("")
print(os.path.split(path))

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

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


import os
path = os.getcwd()
list_ifles = os.walk(path)
for dirpath,dirnames,filenames in list_files:
      for dir in dirnames:
             print(dir)     
       for file in filenames:
             print(file)
       
import os
all_files = []
path = os.getcwd()
list_ifles = os.walk(path)
for dirpath,dirnames,filenames in list_files:
      for dir in dirnames:
             all_files.append(os.path.join(dirpath,dir))    
       for file in filenames:
             all_files.append(os.path.join(dirpath,file))
#打印所有的子目录的文件
for file in all_files:
      print(files)

shutil模块(拷贝和压缩)

import shutil
shutil.copytree("被拷贝的文件","新建的文件")(新建文件需要原来不存在)
shutil.copytree("","",ignaore=shutil.ignore_patterns("*.txt","*.html"))    此时新建文件可以是原来存在的

#压缩、解压缩
shuttil.make_archive("","","")     第二个为压缩格式,例如zip
第三个为被压缩文件
第一个为压缩后的地址

#未使用shutil时的压缩方法
z1=zipfile.ZipFile("压缩后的地址","w")
z1.write("被压缩的文件")
z1.close()

z2=zipfile.ZipFile("需解压的文件","r")
z2.extractall("解压到的目录")
z2.close()

模块的导入

import  模块名
模块的四个通用类别:
1、使用Python编写的代码(.py文件)
2、已经被编译为共享库或DLL的c或c++扩展
3、包好一组模块的包
4、使用c编写并连接到Python解释器的内置模块
from...import导入模块中的成员(函数或者类)

包的导入

1、import  a.aa.module_AA
在使用时必须加完整名称来引用,比如:a.aa.module_AA.fun_AA()
2、from a.aa import module_AA
在使用时,可以直接使用模块名。比如:module_AA.fun_AA()
3、from a.aa.module_AA import fun_AA  直接导入函数
在使用时,直接可以使用函数名,比如fun_AA()
注:
1、from package import item 这种语法中,item可以是包、模块,也可以是函数、类、变量
2、import item1.item2  这种语法中,item必须是包或模块,不能是其他

__init__.py的三个核心作用:
1、作为包的标识,不能删除
2、用来实现模糊导入
3、导入包实质是执行__init__.py文件,可以在__init__.py文件中做这个包的初始化。
以及需要统一执行代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值