zoukankan      html  css  js  c++  java
  • 7.29_python_lx_da19

    一.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)
  • 相关阅读:
    U3D shaderlab 相关指令开关
    CCF NOI1073
    CCF NOI1185
    CCF NOI1077(自然数的拆分问题 )
    CCF NOI1070(汉诺塔)
    CCF NOI1069
    2018年全国多校算法寒假训练营练习比赛(第一场)G.圆圈
    poj1941(递归)
    Codeforce914B (Conan and Agasa play a Card Game)
    Codeforce916B
  • 原文地址:https://www.cnblogs.com/Magicianlx/p/13401234.html
Copyright © 2011-2022 走看看