一.os 对系统进行操作
(1)system 在python中执行系统命令
(2)popen 执行系统命令返回对线,通过read方法读出字符串(防止字符串乱码,使用popen进行操作)
(3)listdir 获取指定文件中所有内容的名称列表
(4)getcwd 获取当前文件所在的默认路径(单纯的路径)
(5)__file__ 路径 + 文件
(6)chdir 修改当前问工作的默认路径
(7)environ 获取或修改环境变量
二.os 模块属性
(1)name 获取系统标识 linux,mac ->posix windows -> nt
(2)sep 获取路径分割符号 linux,mac-> / window->
(3)linesep 获取系统的换行符号 linux,mac -> window-> 或
三.os 和 shutil
import os
(1)mknod 创建文件
(2)remove 删除文件
(3)mkdir 创建目录(文件夹)
(4)rmdir 删除目录(文件夹)
(5)rename 对文件,目录重命名
(6)makedirs 递归创建文件夹
(7)removedirs 递归删除文件夹(空文件夹)
shutil
import shutil
复制/移动
(1)copyfileobj (fsrc,fdst[,length=16*1024]) 复制文件(length的单位是字符(表达一次读多少字符))单纯复制文件内容
(2)copyfile(src,dst) 单纯的仅复制文件内容,底层调用了copyfileobj
(3)copymode(src,dst) 单纯的仅复制文件权限 ,不包括内容 (虚拟机共享目录默认777)
(4)copystat(src,dst) 复制所有状态信息,包括权限,组,用户,修改时间等,不包括内容
(5)copy(src,dst) 复制文件权限和内容
(6)copy2(src,dst) 复制文件权限和内容,还包括权限,组,用户,时间等
删除/移动(文件和文件夹)
(1)copytree(src,dst) 拷贝文件里所有内容(递归拷贝)
(2)rmtree(path) 删除当前文件及其中所有内容(递归删除)
(3)move(path1,'path2/文件名') 移动文件或者文件夹并可以改名
四.os.path 路径模块
import os
os.path.xxxx
(1)basenname 返回文件名部分
(2)dirname 返回路径部分
(3)split 将路径拆分成单独的文件部分和路径组合成一个元组
(4)join 将多个路径和文件组成新的路径可以自动通过不同的系统加不同的斜杠 linux/ windows
(5)splitext 将路径分割为后缀和其他部分
(6)getsize 获取文件大小,文件夹不能计算
(7)isdir 检测路径是否是一个文件夹
(8)isfile 检测路径是否是一个文件夹
(9)islink 检测路径数否是一个链接
(10)getctime [windows]文件的创建时间,[linux]权限的改动时间(返回时间戳)
(11)getmtime 获取文件最后一次修改时间(返回时间戳)
(12)getatime 获取文件最后一次访问时间(返回时间戳)
(13)exists 检测指定的路径是否存在
(14)isabs 检测一个路径是否是绝对路径
(15)abspath 将相对路径转化为绝对路径
五.tarfile 压缩模块 .tar | .tar.gz | .tar.bz2
import tarfile
三种压缩包:<1>单纯的tar包
<2>.tar.gz
<3>.tar.bz2
支持with语法
追加文件(支持with语法)[只能为没有压缩过的tar包进行追加.]
(1)extract 解压单个
(2)extractall 解压所有
(3)getnames 查看压缩包中的文件
如何处理tarfile不能在已经压缩过的包中追加内容的文件
1 # ceshi0729_3.tar.bz2
2 import os
3 path = os.getcwd()#获取当前文件所在的默认路径
4 # 找到要解压的包的路径
5 pathvar1 = os.path.join(path,'ceshi0729_3.tar.bz2')
6 print(pathvar1)
7 # 解压到哪里去
8 pathvar2 = os.path.join(path,'ceshi0729_3')
9 print(pathvar2)
10
11 # (1) 先对已经压缩过的包进行解压
12 with tarfile.open(pathvar1,'r',encoding='utf-8')as tf:
13 tf.extractall(pathvar2)
14
15 # (2) 往这个解压的文件中添加新的文件
16 mybin = 'cp -a /bin/fgrep '+pathvar2
17 print(mybin) #cp -a /bin/fgrep /mnt/hgfs/python_linux/day19/ceshi0729_3
18 os.system(mybin)
19
20 # (3) 对这个文件进行过滤筛选,重新打包压缩 (不要echo)
21 lst = os.listdir(pathvar2)
22 print(lst)
23 with tarfile.open(pathvar1,"w:bz2",encoding="utf-8") as tf:
24 for i in lst:
25 if i!='echo':
26 # 拼接完整路径
27 pathnew = os.path.join(pathvar2,i)
28 # add(路径,别名)
29 tf.add(pathnew,i)