day5模块学习 -- os模块学习

python基础之模块之os模块

os模块

os模块的作用:

os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小……

另外,os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,额...我擦,我还真不知道,(甭管怎么着,肯定不是pwd),这时候我们使用python中os模块的os.path.abspath(name)功能,甭管是linux或者Windows都可以获取当前的绝对路径。

os模块的常用功能:

1  os.name      #显示当前使用的平台

>>> import os
  >>> os.name
  ‘posix‘           #表示linux
    >>> os.name

‘nt‘             #表示windows

2  os.getcwd()      #显示当前python脚本工作路径

>>> os.getcwd()
  ‘/home/zhuzhu‘     #获取当前脚本所在的路径

    3.os.chdir()         #修改文件路径

>>> os.getcwd()
  ‘/home/zhuzhu‘              #文件当前路径是:‘/home/zhuzhu‘
  >>> os.chdir("/home")       #我们使用chdir()来修改文件路径,修改成"/home"
  >>> os.getcwd()
  ‘/home‘                    #可以看出,修改文件路径成功了

    4.os.curdir                #返回当前目录,是一个属性,而不是一个方法

>>> os.curdir
  ‘.‘                       #"."表示当前目录
  >>> os.getcwd()
  ‘/home‘

    5.os.pardir              #返回上一级目录,获取当前目录的父目录字符串名:(‘..‘)

>>> os.pardir
  ‘..‘          #".."代表当前目录的子目录

6.os.makedir("dirname1/dirname2")     #可生成多层递归目录,就是递归的创建文件目录

下面,我们在当前目录下创建一个文件夹

os.makedirs("/home/zhuzhu/geng/alex")

os.makedirs()在文件/home/zhuzhu下创建了geng目录,在geng目录下创建了文件alex,如下,下面我们来看看是否创建成功:

[email protected]:~$ ls /home/zhuzhu
  ATM         day6                            random           title4  视频
  Credit      day7                            shopping_center  title5  图片
  CreditCard  examples.desktop                sorted           title6  文档
  day1        geng                            title10          title7  下载
  day2        java_error_in_PYCHARM_2297.log  title11          title8  音乐
  day3        learning_log                    title15          title9  桌面
  day4        pycharm-2016.3.3                title16          第五天  作业
  day4.0      pygame                          title2           公共的  作业汇总
  day5        《Python编程》源代码文件        title3           模板
    从上面可以看出,文件geng创建成功,下面来看看alex是否创建成功:

[email protected]:~$ ls /home/zhuzhu/geng
  alex

可以看出,目录alex也创建成功了。

    7.os.removedirs("dirname1")     #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,以此类推

os.removedirs()是删除空的目录,递归的删除目录

上面我们创建了一个/home/zhuzhu/geng/alex,后面两个目录都为空,那么使用os.removedirs()看是否能够删除成功。

>>> os.removedirs("/home/zhuzhu/geng/alex")     #删除目录alex,如果geng为空,也删除,依次类推。

[email protected]:~$ ls
  ATM         day6                            shopping_center  title5  图片
  Credit      day7                            sorted           title6  文档
  CreditCard  examples.desktop                title10          title7  下载
  day1        java_error_in_PYCHARM_2297.log  title11          title8  音乐
  day2        learning_log                    title15          title9  桌面
  day3        pycharm-2016.3.3                title16          第五天  作业
  day4        pygame                          title2           公共的  作业汇总
  day4.0      《Python编程》源代码文件        title3           模板
  day5        random                          title4           视频
    可以看出,geng目录已经删除成功了

[email protected]:~$ ls /home/zhuzhu/geng
  ls: 无法访问‘/home/zhuzhu/geng‘: 没有那个文件或目录

系统里面也没有/home/zhuzhu/geng这个文件目录了

8.os.mkdir("dirname")      #生成单级目录;只能一层一层创建,不能像makedirs()递归的创建

>>> os.mkdir("/home/zhuzhu/geng/alex")
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  FileNotFoundError: [Errno 2] No such file or directory: ‘/home/zhuzhu/geng/alex‘
  >>> os.mkdir("/home/zhuzhu/geng")
  >>> os.mkdir("/home/zhuzhu/geng/alex")

上面,我们使用mkdir("/home/zhuzhu/geng/alex")进行目录创建,系统报错,找不到文件路径/home/zhuzhu/geng,在下面我们先创建geng,然后创建alex就可以,mkdir()是一层一层创建文件目录,如果上一层文件目录不存在,在会报错。

    9.rmdir("dirname")    #删除当即空目录,若目录不为空则无法删除,报错;

    10.os.listdir("dirname")    #列出指定目录下的所有文件和子目录,包含隐藏文件,并以列表方式打印

os.listdir("dirname")   以列表的形式显示当前文件下所有的文件和子目录,如下:

    >>> os.listdir(".")     #当前文件的子目录
  [‘.compiz‘, ‘.profile‘, ‘day5‘, ‘examples.desktop‘, ‘.bashrc‘, ‘title10‘, ‘.config‘, ‘title8‘, ‘title15‘, ‘title16‘,        ‘java_error_in_PYCHARM_2297.log‘, ‘.sunpinyin‘, ‘sorted‘, ‘.java‘, ‘.mozilla‘, ‘shopping_center‘, ‘.gnupg‘, ‘.gphoto‘, ‘音乐‘,   ‘pygame‘, ‘作业‘, ‘day7‘, ‘.cache‘, ‘.pki‘, ‘title11‘, ‘day6‘, ‘作业汇总‘, ‘title4‘, ‘title3‘, ‘.sogouinput‘, ‘title2‘,       ‘CreditCard‘, ‘day1‘, ‘.bash_logout‘, ‘title6‘, ‘random‘, ‘.xinputrc‘, ‘.ICEauthority‘, ‘title7‘, ‘day4‘, ‘.gnome‘, ‘.local‘, ‘  文档‘, ‘公共的‘, ‘.xsession-errors‘, ‘视频‘, ‘桌面‘, ‘.bash_history‘, ‘.xsession-errors.old‘, ‘.Xauthority‘, ‘《Python编程》源代  码文件‘, ‘day3‘, ‘图片‘, ‘Credit‘, ‘.dbus‘, ‘pycharm-2016.3.3‘, ‘.python_history‘, ‘day2‘, ‘第五天‘, ‘ATM‘, ‘.PyCharm2016.3‘,   ‘.gconf‘, ‘title5‘, ‘下载‘, ‘.mysql_history‘, ‘learning_log‘, ‘模板‘, ‘title9‘, ‘.sudo_as_admin_successful‘, ‘day4.0‘, ‘.presage‘]
  >>> os.listdir("..")    #上一级文件的子目录
  [‘zhuzhu‘]

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

下面,我们来看一个例子:

>>> os.mkdir("/home/zhuzhu/geng")      #首先创建一个geng的目录,并且在里面添加内容

>>> os.rmdir("/home/zhuzhu/geng")      #添加内容之后,我们来删除geng文件
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  OSError: [Errno 39] Directory not empty: ‘/home/zhuzhu/geng‘

删除的时候,报错了,提示说文件不是空,不能删除,现在我们使用os.remove("dirname")来进行删除尝试:

>>> os.remove("/home/zhuzhu/geng")
  Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
  IsADirectoryError: [Errno 21] Is a directory: ‘/home/zhuzhu/geng‘
  >>> os.remove("/home/zhuzhu/geng/alex")     #删除成功,删除geng文件夹下面的文件alex,从上面例子中我们可以看出,removedirs()是递归的删除文件夹,rmdir()是删除单层文件夹,如果文件夹里面有内容(即便里面的文件是空的,也是不能删除的),是不能删除的。而remove()是删除文件夹里面的文件。

    12.os.remove()        #重命名文件/目录

>>> os.mkdir("/home/zhuzhu/geng")        #创建一个文件夹
  >>> os.rename("/home/zhuzhu/geng","/home/zhuzhu/alexsb")     #修改这个文件夹的名字,可以看出,修改成功了

os.remove()是重命名文件夹的,不能修改文件的名字

    13.os.stat("path/filename")      #获取文件/目录信息

    >>> os.listdir()       #获取当前文件下的文件/目录信息
  [‘.compiz‘, ‘.profile‘, ‘day5‘, ‘examples.desktop‘, ‘.bashrc‘, ‘title10‘, ‘.config‘, ‘title8‘, ‘title15‘, ‘title16‘,       ‘java_error_in_PYCHARM_2297.log‘, ‘.sunpinyin‘, ‘sorted‘, ‘.java‘, ‘.mozilla‘, ‘shopping_center‘, ‘.gnupg‘, ‘.gphoto‘, ‘音乐‘,   ‘pygame‘, ‘作业‘, ‘day7‘, ‘.cache‘, ‘.pki‘, ‘title11‘, ‘day6‘, ‘作业汇总‘, ‘title4‘, ‘title3‘, ‘.sogouinput‘, ‘title2‘,       ‘CreditCard‘, ‘day1‘, ‘.bash_logout‘, ‘title6‘, ‘random‘, ‘.xinputrc‘, ‘.ICEauthority‘, ‘title7‘, ‘day4‘, ‘.gnome‘, ‘.local‘, ‘文  档‘, ‘公共的‘, ‘.xsession-errors‘, ‘视频‘, ‘桌面‘, ‘.bash_history‘, ‘.xsession-errors.old‘, ‘.Xauthority‘, ‘《Python编程》源代码  文件‘, ‘day3‘, ‘图片‘, ‘Credit‘, ‘.dbus‘, ‘pycharm-2016.3.3‘, ‘.python_history‘, ‘day2‘, ‘第五天‘, ‘ATM‘, ‘.PyCharm2016.3‘,     ‘.gconf‘, ‘title5‘, ‘下载‘, ‘.mysql_history‘, ‘learning_log‘, ‘模板‘, ‘title9‘, ‘.sudo_as_admin_successful‘, ‘day4.0‘,       ‘.presage‘]
  >>> os.stat("day5")    #获取文件的信息
  os.stat_result(st_mode=16893, st_ino=17302706, st_dev=64768, st_nlink=4, st_uid=1000, st_gid=1000, st_size=4096,           st_atime=1500590962, st_mtime=1496033312, st_ctime=1496033312)

可以看出,os.stat("dirname")是获取文件的信息,st_size大小,创建时间等等信息。

    14.os.sep     #输出操作系统特定路径分隔符,win下为"\\",Linux下为"/"

>>> import os      #输出操作系统特定路径分隔符,Windows下为"\\",Linux下为"/"
  >>> os.sep
  ‘/‘               #从输出可以看出,使用的是Linux操作系统

    15.os.linesep     #输出当前平台使用的行终止符,Windows下为"\t\n",Linux下为"\n"

平台使用的行终止符,Windows下为"\t\n",Linux下为"\n",下面来看看当前电脑的行终止符。

>>> os.linesep       #查看当前平台使用的行终止符,Windows下为"\t\n",Linux下为"\n"
  ‘\n‘

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

>>> os.pathsep
  ‘:‘

    17.os.system("bash command")      #运行shell命令,直接显示

>>> os.system("dir")      #运行系统命令
  ATM        day6                shopping_center  title5  图片
  Credit        day7                sorted         title6  文档
  CreditCard  examples.desktop            title10         title7  下载
  day1        java_error_in_PYCHARM_2297.log  title11         title8  音乐
  day2        learning_log            title15         title9  桌面
  day3        pycharm-2016.3.3            title16         第五天  作业
  day4        pygame                title2         公共的  作业汇总
  day4.0        《Python编程》源代码文件        title3         模板
  day5        random                title4         视频

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

os.environ是获取系统环境变量,输入可以显示系统的环境变量

    19.os.path.abspath(path)      #返回path规范化的绝对路径

>>> os.path.abspath("/home/zhuzhu")
  ‘/home/zhuzhu‘

    20.os.path.split(path)     #将path分割成目录和文件名二元组返回

>>> os.path.split("/home/zhuzhu/a.txt")
  (‘/home/zhuzhu‘, ‘a.txt‘)

    21.os.path.dirname(path)    #返回path的目录。其实就是os.path.split(path)的第一个元素

>>> os.path.dirname("/home/zhuzhu/a.txt")
  ‘/home/zhuzhu‘
  >>> os.path.dirname("/home/zhuzhu")
  ‘/home‘

    22.os.path.basename(path)    #提取文件最后一个名字,即os.path.split(path)的第二个元素

>>> os.path.basename("/home/zhuzhu/alex.txt")
  ‘alex.txt‘
  >>> os.path.basename("/home/zhuzhu")
  ‘zhuzhu‘

    23.os.path.exists(path)     #如果path存在,返回True;如果path不存在,返回False

>>> os.path.exists("/home/zhuzhu/alexsb.txt")
  False
  >>> os.path.exists("/home/zhuzhu")
  True

从上面可以看出,os.path.exists(path)是用来判断文件是否存在,如果path存在,则返回True;否则返回False

    24.os.path.isabs(path)    #如果path是绝对路径,返回True

Linux系统中,以"/"开头的就是绝地路径,否则就是相对路径

>>> os.path.isabs("/home/zhuzhu")
  True
  >>> os.path.isabs("/zhuzhu")
  True
  >>> os.path.isabs("zhuzhu")
  False

os.path.isabs(path)判断文件路径是否是绝对路径,Linux系统中,只要是以"/"开头就是绝对路径,Windows"C:\"等开头是绝对路径,即从根目录开始就是绝对路径,不管文件是否存在。

    25.os.path.isfile(path)      #如果path是一个存在的文件,返回True;否则返回False

>>> os.path.isfile("/home/zhuzhu/alex.txt")
  True
  >>> os.path.isfile("/home/zhuzhu")
  False
    os.path.isfile(path)是判断一个文件是否存在,如果path是一个文件夹或者不存在,就会返回错误,其实就是判断一个文件是否存在。

    26.os.path.isdir(path)     如果paht是一个存在的目录,则返回True。否则返回False

>>> os.path.isdir("/home/zhuzhu")
  True
  >>> os.path.isdir("/home/zhuzhu/alex.txt")
  False

os.path.isfile(path)是判断一个文件是否存在,而os.path.sidir(path)是判断一个目录是否存在,两者是不一样的,一个是文件,一个是目录。

    27.os.path.join(path1,path2,path3)   #将多个文件路径组合后返回,第一个绝对路径之前的参数将被忽略

>>> os.path.join("/home","zhuzhu")
  ‘/home/zhuzhu‘
  >>> os.path.join("/home","zhuzhu","alex.txt")
  ‘/home/zhuzhu/alex.txt‘

    28.os.path.getatime(path)    #返回path所指向的文件或者目录最后存取时间  (getatime = get access time最后存取时间)

>>> os.path.getatime("/home/zhuzhu/alex.txt")
  1500730373.8242517

    29.os.path.getmtime(path)   #返回path所有指向的文件或者目录的最后修改时间  (getmtime = get modify time最后修改时间)

>>> os.path.getmtime("/home/zhuzhu/alex.txt")
  1500730373.8242517

时间: 2024-10-25 14:00:59

day5模块学习 -- os模块学习的相关文章

【python】glob模块、os模块

http://www.cnblogs.com/hongten/p/hongten_python_glob.html http://wenku.baidu.com/link?url=AgUq9_yQVjQ_uivEgjWEg9HNQ9bqXqY_efk_vtdPerzcTEkU-mgXFPZWckX8fwVaU_mNsZO5PUdVzjDbX4HtY5baiqxWNtF-rnIOzfGDfYm http://www.cnpythoner.com/post/92.html [python]glob模

Python中常用的模块(OS模块)

一.Python OS模块介绍 OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: >>> import os #导入os模块>>> help(os)   #查看os模块帮助文档,里面详细的模块相关函数和使用方法 二.OS模块重要函数和变量: 1 ).os.sep 更改操作系统中的路径分隔符.2 ).os.getcwd()获取当前路径,这个在Python代码中比较常用.3 ).os.

re模块、os模块、subprocess模块

一.re模块 1.什么是正则 正则就是用一系列具有特殊含义的字符组成一套规则,该规则用来描述具有某一特征的字符串, 正则就是用来去一个大的字符串中匹配出符合规则的子字符串 2.为什么要用正则 1.用户注册 2.爬虫程序 3.如何用正则 # =================================匹配模式================================= #一对一的匹配 # 'hello'.replace(old,new) # 'hello'.find('pattern'

Python常用模块——系统调用os模块

Python常用模块--系统调用os模块 OS模块 os模块提供了很多允许你的程序与操作系统直接交互的功能. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r"c:\python") 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir(

python基础学习os模块和sys模块

os模块和sys模块import osos.getcwd() #获取当前工作目录os.chdir() #切换目录os.makedirs() #递归创建一个目录os.removedirs() #递归删除一个目录(若目录为空则删除并递归到上一层目录,如果为空再删除,在递归到上一层目录)os.mkdir() #不递归创建目录os.rmdir() #不递归删除目录os.listdir() #查看指定目录下的所有文件和目录os.remove() #删除一个文件os.rename(oldname,newna

python学习-OS模块

OS模块是python内建模块,主要是对大量文件和大量路径进行操作 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径. os.getenv()和os.putenv:分别用来读取和设置环境变量 os.listdir():返回指定目录下的所有文件和目录名 os.remove(file):删除一个文件

part10-1 Python常见模块(sys模块、os模块)

Python 有强大的第三方模块,这些第三方模块在实际运用中已经能实现很多的功能,通常不需要重复开发具有相同功能的模块.另外,Python 语言也内置了大量的模块,这些模块已经非常完善,例如对于常见的日期.时间.正则表达式.JSON支持.容器类等都有完善的模块.接下来学习 Python 内置的模块,不过这些模块还在不断的更新中,更详细的模块帮助可查看 Python 库的在线参考手册,https://docs.python.org/3/library/index.html. 一. sys 模块 s

Python 基础 - 模块 Module - os模块

OS模块 操作系统功能, 涉及文件及目录等操作.不受平台限制.os模块允许一个程序不需要任何改动,同时在linux 和 windows下运行.和windows下powershell以及linux里的command操作类同. 常用操作 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字

python基础之模块之os模块

os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- os模块的常用功能: 1  os.name      #显示当前使用的平台 >>> os.name 'nt' #这表示Windows >>> os.name 'posix' #这表示Linux 2  os.getcwd()      #显示当前python脚本工作路径 >>