sys 模块和 os 模块-
--------------------------- sys 模块和 os 模块----------------------------------
-
sys
#练习1.用于计算同一内存地址有多少次指向 import sys a = [11,22,33] b = a print(sys.getrefcount(a))
-
知识补充
-
\n 换行符
-
\t 制表符
-
\r 回到当前行的起始位置
#示例1 print('12355666\r',end='') print('你好') #输出结果为你好,将前面的12355666覆盖 #示例2 #进度条的生成 import time for i in range(1,101): msg = '%s%%\r'%i print(msg,end='') time.sleep(0.1)
-
-
复制一个新的文件,并用进度条表示进度
import os file_size = os.stat('MicrosoftOffice_2007_XiTongZhiJia.zip').st_size #获取字节大小 print(file_size) read_size = 0 with open('MicrosoftOffice_2007_XiTongZhiJia.zip',mode='rb') as f1,open('a.file',mode='wb') as f2: while read_size < file_size: chunk = f1.read(1024) #每次读1024个字节 f2.write(chunk) read_size +=len(chunk) val =('%.4f'% (read_size/file_size *100)) #保留两位小数 print('%s%%\r'%val,end='')
-
删除指定的文件路径的目录
#让用户执行脚本传入要删除的路径,在内部帮助用户将目录删除 import sys print(sys.argv) 在命令行中执行,可添加元素,获得列表 #获取文件路径 import shutil shutil.rmtree(path) #删除目录
os模块
和操作系统相关的数据
-
os.path.exists(path) 如果path存在,返回True;如果不存在,返回Flase
-
os.stat(path).st_size 获取文件大小
-
os.path.abspath() 获取一个文件的绝对(全)路径
path = 'MicrosoftOffice_2007_XiTongZhiJia.zip' import os v1 = os.path.abspath(path) print(v1)
-
os.path.dirname(path) , 获得上级目录
import os v = r'D:\python\python.exe C:/code/untitled/DAY1.py' #r为转译字符类似于\ print(os.path.dirname(v)) #关于转译字符r的补充 print("jhsdfgv\ndfdtg\\\cdfgdd\\s") #注意\出现的次数,即使不是(s/r/t)时其第二个\也是转译字符和只有一个是一样的
-
os.path.join , 路径的拼接
import os path = r"C:\code\untitled\lianxi" v = 'n.txt' result = os.path.join(path,v) print(result)
-
os.listdir , 查看一个目录下所有文件(第一层)
import os path = r'C:\code\untitled' result = os.listdir(path) for i in result: print(i)
-
os.walk , 查看一个目录下的所有文件(所有层)
import os result = os.walk(r'C:\code\untitled') for a,b,c, in result: print(a,1111,b,5555,c) #a:正在查看的目录;b:此目录下的文件夹;c:此目录下的文件 for item in c: # print(item) path = os.path.join(a,item) print(path)
记录学习的点点滴滴