import os
pathvar = r"C:\Users\86182\Desktop\新建文件夹"
def func(pathvar):
lst = os.listdir(pathvar)
size = 0
for i in lst:
pathnew = os.path.join(pathvar,i)
if os.path.isfile(pathnew)
size += os.path.getsize(pathnew)
elif os.path.isdir(pathnew)
size += func(pathnew)
return size
res = func(pathvar)
print(res)
<-------------------------------------------------------------------------------->
### ##### zipfile 后缀是zip
import zipfile
#1.压缩文件
创建压缩包
zf = zipfile.ZipFile("ceshi0512.zip","w",zipfile.ZIP_DEFLATED)
zf.write("路径文件",文件名)
zf.close
#2.解压文件
zf = zipfile.ZipFile("ceshi0512.zip","r")
zf.extractall("./ceshi300") #解压所有文件到某个路径下
zf.close
zf.extract("1.txt","./ceshi400")
zf.close
#3.追加文件
zf = zipfile.ZipFile("ceshi0512.zip","a",zipfile.ZIP_DEFLATED)
zf.write(路径文件,文件名)
zf.close
with 语法改写
with zipfile.ZipFile("ceshi0512.zip","a",zipfile.ZIP_DEFLATED) as zf:
zf.write(文件路径,文件名)
#4.查看文件
with zipfile.ZipFile("ceshi0512.zip","r",zipfile.ZIP_DEFLATED) as zf:
lst = zf.namelist()
print(lst)
<------------------------------------------------------------------------->
#### ##### tarfile .tar .tar.gz .tar.bz2 (官方最小)
import tarfile
(1)创建tar压缩包 比对各个大小 tar > gz > bz2
tarfile.open("ceshi.tar","w",encoding = "utf-8")
tf.add(文件路径,文件名)
tf.close
tarfile.open("ceshi.tar","w:gz",encoding = "utf-8")
tf.add(文件路径,文件名)
tf.close
tarfile.open("ceshi.tar","w:bz2",encoding = "utf-8")
tf.add(文件路径,文件名)
tf.close
#### 2. 解压文件
tf = tarfile.open("ceshi.tar","r",encoding = "utf-8")
tf.extractall(路径文件夹)
tf.close
tf.extract(文件名,路径文件夹)
tf.close
#### 3.追加文件
只能对W模式下的打包进行追加,其他模式不行
with tarfile.open("ceshi.tar","a",encoding = "utf-8") as tf:
tf.add(文件路径,文件名)
with tarfile.open("ceshi.gz","a",encoding = "utf-8") as tf:
tf.add(文件路径,文件名)
### 4.查看压缩包
with tarfile.open("ceshi.gz","r",encoding = "utf-8") as tf:
lst = tf.getnames()
print(lst)
#### ### 解决tarfile不能追加的问题
先解压原来压缩包
tf = tarfile.open("ceshi.0515.tar.bz2","r",encoding = "utf-8")
tf.extractall(路径文件夹)
tf.close
添加要添加的文件
import shutil
shutil.copy(文件路径,目标文件夹)
重新压缩文件
<------------------------------------------------------------------------->
### 模块与包 文件与文件夹的关系
1. import 导包
import mymodule
mymodule.xboy
print(mymodule.xboy)
把一个文件里面的内容导入当前文件下,可以直接 模块.进行调用
1. 模块.变量
2. 模块.函数
3. 模块.类
mymodule.Car().colour
默认只能导入当前文件所在的文件夹下的所有模块
### 导入任意路径下的模块
通过sys.path 可以导入任意路径下的模块
import sys 系统模块
sys.path 模块
将路径加入sys.path.append(路径)
###可以给导入的模块起一个别名
import mymodule2 as m2
print(m2.a)
print(m2.b)
#### from ... import
# 导入单个
from mymodule import xboy
print(xboy)
# 导入多个
from mymodule import xboy,xgirl,dog
print(xboy)
dog()
# 导入所有 * 代表所有
from mymodule import *
cat()
# 起一个别名
from mymodule import xboy as xb,xgirl as xg
print(xb)
print(xg)
# 定制*的范围 __all__ = ["dog"]
from mymodule import *
##### 4. __name__
返回模块名字的
print(__name__) #结果是__main__
如果被直接执行,返回的是__main__
如果是间接被导入,返回当前的文件名(模块名)
##为了防止当作为模块导入时,下面代码被执行,可以用下面代码,这个是做测试的
if __name__ == "__main__"
dog()
<---------------------------------------------------------------------------------->
1.import 导入包
"""
# 1.文件就是一个模块,文件夹就是一个包
文件夹里面可以有很多的文件,就相当于包里面有很多的模块
# 2.__init__.py 对包(文件夹)进行初始化的脚本文件
导入包的时候,系统自动调用__init__文件,当前文件夹进行初始化,实际上就是对init中的文件属性进行导入
# 3.这个包下的其他模块可以通过初始化文件间接导入
"""
# ### 2.用from .. import 从包导入成员(落脚点在模块或者成员)
# 包.模块.成员
# from package1 import ceshi001
# print(ceshi001)
# from package1 import mypath
# mypath.getsize()
# from package1.mypath import getsize
# getsize()
#### 3.导入所有 *
from package1 import *
# print(ceshi002)
print(ceshi001)
####3 单入口模式(相对路径导入)
djangle
当前文件如果含有相对路径,是不能够直接调用的,需要通过导入到入口的启动文件中进行识别调用
from import需要落脚于模块或者模块的成员
王振2020-5-21笔记
最新推荐文章于 2023-03-13 20:52:00 发布