运行环境:python3

OS模块:os 模块提供了一个统一的操作系统的接口函数

下面的path指路径的意思

os.stat(file) #查询文件属性操作

os.sep #取代操作系统特定的路径分隔符

os.pathsep #输出用于分割文件路径的字符串

os.linesep#给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'

os.name #获取当前用的平台,nt代表windows,posix代表linux

os.getcwd())#得到当前工作目录,即当前Python脚本工作的目录路径

os.listdir(path) #获取目录下的所有文件和文件夹,不加参数默认为当前目录

os.mkdir(path) #创建单级目录,如果目录存在则报错

os.makedirs(path) #创建多级目录,可以生成多层递归目录,如果目录存在则报错

os.rmdir(path) #删除一个目录,注意目录下必须为空,有文件则报错

os.removedirs(path) #删除多级目录,可以删除多层递归的空目录,注意目录下必须为空,有文件则报错

os.remove(path)#删除一个文件

os.rename(src,dst) #文件重命名,注意dst(要修改的文件名)必须不存在。

print(__file__) #获取当前文件的相对路径

os.chdir() #改变目录

os.system()#运行shell命令

os.getenv()os.putenv()#分别用来读取和设置环境变量 os.putenv('PATH',BaseDir)  os.getenv('PATH')

os.environ() #获取系统环境变量

os.walk(path):生成目录树下的所有文件名

如:

print(os.walk('c:'+os.sep+'python35'))  #迭代器

for i in os.walk('c:'+os.sep+'python35'):

   print(i)

->打印c:\python35下的所有文件

os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd

os.curdir  返回当前目录: ('.')

os.pardir  获取当前目录的父目录字符串名:('..')

os.path模块

下面的path指路径的意思

os.path.split(path):以元组的形式分割文件名与目录(如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

os.path.join(path):连接目录与文件名,不会判断文件或目录是否存在

print(os.path.abspath(__file__)):获取绝对路径

os.path.dirname(path):返回path的上一级,相当于os.path.split(path)[0]

os.path.basename(path):返回文件名或者目录名,相当于os.path.split(path)[1]

os.path.getsize(path):获得文件大小

os.path.isfile(path):判断路径是不是一个文件,这里path可以是字节形式的。

print(os.path.isfile(b'server.py'))
print(os.path.isfile('server.py'))
两者都是True

os.path.isdir(path):判断路径是不是一个目录

os.path.isabs(path):判断路径是否为绝对路径

os.path.exists(path):判断路径是否存在

os.path.getatime(path):返回path所指向的文件或者目录的最后存取时间

os.path.getmtime(path):返回path所指向的文件或者目录的最后修改时间

更多参考:https://docs.python.org/2/library/os.html?highlight=os#module-os

sys模块

sys.argv:实现从程序外部向程序传递参数

sys.exit():程序中间的退出

sys.getdefaultencoding():获取系统当前编码,python3:utf8,python2:ascii

sys.path:获取环境变量的列表集合,如需在不同目录下调用模块,可用该方法。

例子:在不同文件下互相调用模块

如主文件在day2下,现在我们要调用day1的模块,那我们就得得到day的路径并且加入到环境变量中如下。

base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #得到当前文件的上上一级目录

sys.path.append(base_dir)   #添加到环境变量

sys.stdin\stdout\stderr  # stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

sys.platform      # 返回操作系统平台名称

sys.version      #获取Python解释程序的版本信息

更多参考:https://docs.python.org/2/library/sys.html?highlight=sys#module-sys

shutil模块

高级的文件、文件夹、压缩包处理模块

# f = open('shutil_text')
# f2 = open('shutil_new','w')
# shutil.copyfileobj(f,f2) #将文件内容拷贝到另一个文件中,可以部分内容,要打开文件才能拷贝文件 #shutil.copy('shutil_text',r'shutil_text') #拷贝文件和权限
"""如果目的路径是一个目录,那就把源文件的文件名作为文件名拷贝到目的路径下,
如果目的路径存在且不是一个目录,如果文件存在,则拷贝到该文件下,文件不存在,则创建文件并拷贝内容至该文件
如果目录不存在,则报错
如果两个是相同路径且相同的文件名,则报SameFileError错误
"""
#shutil.copy2(src,dst) #拷贝文件和状态信息
#shutil.copyfile(src,dst) #拷贝文件
#shutil.copymode(src,dst) #仅拷贝权限。内容、组、用户均不变
#shutil.copystat(src,dst) #拷贝状态的信息,包括:mode bits, atime, mtime, flags #shutil.copytree(r'c:\luxj',r'd:\lxj\text1') #递归的去拷贝文件
#shutil.rmtree(path) #递归的去删除文件 #shutil.move(r'c:\luxj',r'd:\lxj\text1') #递归的去移动文件

shutil.make_archive(base_name, format,...)

创建压缩包并返回文件路径,例如:zip(压缩)、tar(只打包)

    • base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
      如:www                        =>保存至当前路径
      如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
    • format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
    • root_dir: 要压缩的文件夹路径(默认当前目录)
    • owner: 用户,默认当前用户
    • group: 组,默认当前组
    • logger: 用于记录日志,通常是logging.Logger对象

如:shutil.make_archive(r'c:\aaaaa','zip',r'd:\lxj\text1')

shutil.make_archive(r'c:\aaaa','tar',r'd:\lxj\text1')  #试了下只能压缩目录,不能压缩单个文件

 shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:

import zipfile

压缩

# z = zipfile.ZipFile(r"c:\aaaaa.zip",'a')  #目前只能解决压缩单个文件,压缩目录可用shutil.make_archive
# z.write('shutil_new') #这里取决你选取的模式,如果是w,清空再压缩至该文件,如果是a则追加
# z.close()
解压 z = zipfile.ZipFile(r"c:\aaaaa.zip",'r')
z.extractall('c:')
z.close()
import tarfile
压缩
# tar = tarfile.open(r"c:\your.tar",'w')
# tar.add(r"d:\lxj\text1",arcname='sx') #加上arcname可以压缩目录
# tar.close() 解压
tar = tarfile.open('c:\your.tar','r')
tar.extractall('c:') # 可设置解压地址
tar.close()
												

os、sys和shutil模块的更多相关文章

  1. Python sys和shutil模块

    # !/user/bin/python # -*- coding: utf-8 -*- import sys # version 获取版本信息 sys.version # maxint 支持的最大in ...

  2. python模块 os&sys&subprocess&hashlib模块

    os模块 # os模块可根据带不带path分为两类 # 不带path print(os.getcwd()) # 得到当前工作目录 print(os.name) # 指定你正在使用的操作系统,windo ...

  3. Python (time、datetime、random、os、sys、shutil)模块的使用

    ######################################################### 模块time ################################### ...

  4. python基础四(json\os\sys\random\string模块、文件、函数)

    一.文件的修改 文件修改的两种思路: 1.把文件内容拿出来,做修改后,清空原来文件的内容,然后把修改过的文件内容重新写进去. 步骤: 1.打开文件:f=open('file','a+')  #必须用a ...

  5. Python os.removedirs() 和shutil.rmtree() 用于删除文件夹

    概述 os.removedirs() 方法用于递归删除目录.像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般 ...

  6. 6.4.1 标准库 os、os.path 与 shutil 简介

    os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法,如下表所示. 方法 功能说明 access(path,mode) 按照 mode 指定的权限访问文件 ...

  7. python 常用模块之os、sys、shutil

    目录: 1.os 2.sys 3.shutil 一.os模块 说明:os模块是对操作系统进行调用的接口 os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdi ...

  8. Python模块 - os , sys.shutil

    os 模块是与操作系统交互的一个接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录: ...

  9. python 关于操作文件的相关模块(os,sys,shutil,subprocess,configparser)

    一:os模块 os模块提供了许多允许你程序与操作系统直接交互的功能 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname&quo ...

随机推荐

  1. readonly和disabled的异同

    好久木有写博客了,今来逛逛 话说今天搞form表单的时候,主管让俺把手机号设成只读的.当时我就...咳咳,然后我就问了下万能的百度君,果断还是有解决方法的嘛,那么,今就谈谈readonly和disab ...

  2. Myeclipse 2014 for mac10.9 激活

    网上查了N多激活,都无法正确激活.后来慢慢爬文,终于激活了...真艰难啊.  所以怒马一份!   安装myeclipse. 安装完成别急着打开. 在终端里面打开的破解文件jar. java -jar ...

  3. jvisualvm远程监控 Visual GC plugin NOT supported for this JVM

    1. 找到jdk安装目录. 2. 进入jdk的 bin目录,新建文件jstatd.all.policy. 3.编辑jstatd.all.policy文件,内容如下: 4. 给jstatd.all.po ...

  4. hdu1569 方格取数 求最大点权独立集

    题意:一个方格n*m,取出一些点,要求两两不相邻,求最大和.思路:建图,相邻的点有一条边,则建立了一个二分图,求最大点权独立集(所取点两两无公共边,权值和最大),问题转化为求总权和-最小点权覆盖集(点 ...

  5. 《Java虚拟机原理图解》 1.2.2、Class文件中的常量池详解(上)

    我的上一篇文章<Java虚拟机原理图解> 1.class文件基本组织结构中已经提到了class的文件结构,在class文件中的魔数.副版本号.主版本之后,紧接着就是常量池的数据区域了,如下 ...

  6. NRapid前言

    开发工具 Visual Studio 2017 数据库 SQL Server 2012 相关技术 Asp.net MVC

  7. python type

    基于2.7 版本 type 是内置函数,有两种用法 class type(object) With one argument, return the type of an object. The re ...

  8. 使用Reveal 调试iOS应用程序

    Itty Bitty Apps发布了一款实用工具——Reveal,它能够在运行时调试和修改iOS应用程序.Reveal能连接到应用程序,并允许开发者编辑各种用户界面参数,这反过来会立即反应在程序的UI ...

  9. Service具体解释(一):什么是Service

    < Service具体解释(一):什么是Service> < Service具体解释(二):Service生命周期> <Service具体解释(三):Service的使用 ...

  10. 前端高频面试题 JavaScript篇

    以下问题都来自于互联网前端面经分享,回答为笔者通过查阅资料加上自身理解总结,不保证解答的准确性,有兴趣讨论的同学可以留言或者私信讨论. 1.JS的异步机制? 2.闭包如何实现? 3.原型链.继承? 4 ...