python---os模块使用详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python---os模块使用详解相关的知识,希望对你有一定的参考价值。

os模块调用操作系统接口的模块                          

  相关方法或属性:

    getcwd() --- 获取当前的操作目录,等同于linux中的pwd命令。

      调用:os.getcwd()

    chdir() --- 改变python脚本的工作目录。

      调用:os.chdir(path) (path以字符串形式传入)

      例如:

>>> os.getcwd()
C:\\Users\\BLUE
>>> os.chdir(D:\\Program Files)
>>> os.getcwd()
D:\\Program Files
>>> os.chdir(rC:\Users\BLUE)
>>> os.getcwd()
C:\\Users\\BLUE

    curdir --- 当前目录   使用:os.curdir

    pardir --- 当前目录的父目录   使用: os.pardir

      例如:

>>> os.curdir
.
>>> os.pardir
..
>>> os.getcwd()
C:\\Users\\BLUE
>>> os.chdir(os.pardir)
>>> os.getcwd()
C:\\Users

    makedirs() --- 递归的创建目录。

      调用:os.makedirs(‘dir_1/dir_2/dir_3/.../dir_n‘)

      例如:os.makedirs(r‘C:\a\b\c\d‘)  #该操作会依次在C盘下创建a, b, c, d四个文件夹(若a目录存在则只创建b,c,d三个目录)。

    removedirs() --- 若当前目录为空则删除,并切换到父级目录,若为空继续删除,依次递归。

      调用:os.removedirs(‘dir_1/dir_2/dir_3/.../dir_n‘)

      例如:os.removedirs(r‘C:\a\b\c\d‘)  #该操作会依次在C盘下依次删除d, c, b, a四个文件夹,如果中间某一级目录不为空,则在该级停止删除。

    mkdir() --- 创建单级目录。

      调用:os.mkdir(‘dir_1/dir_2/dir_3/.../dir_n‘)

      例如:os.mkdir(r‘C:\a\b\c\d‘)  #该操作会在C盘下创建d文件夹(若a, b, c目录有一个不存在,则无法创建并报错)。

    rmdir() --- 删除单级空目录。

      调用:os.rmdir(‘dir_1/dir_2/dir_3/.../dir_n‘)

      例如:os.rmdir(r‘C:\a\b\c\d‘)  #若d目录为空,该操作只删除d目录, 否则无法删除并报错。

    listdir() --- 以列表的形式列出制定目录下的所有文件(包括隐藏文件),子目录。

      调用:os.listdir(path)

      例如:(列出D盘下的所有文件)

>>> os.listdir(rD:)
[Anaconda3, BaiduNetdisk, BHO, Data, guiminer, Intel, JetBrains, Profiles, Program, Tencent, Thunder, Thunder BHO Platform, UninstallXLWFP.exe, WinRAR, 腾讯游戏]

    remove() --- 删除一个文件。

      调用:os.remove(path)

    rename() --- 对一个文件重命名。

      调用:os.rename(old_filename, new_filename)  #注意不能覆盖已存在文件

    stat() --- 获取文件或目录的属性信息。

      调用:os.stat(path)

      例如:

>>> os.stat(rC:\Windows\regedit.exe)
os.stat_result(st_mode=33279, st_ino=281474976742063, st_dev=1893840342, st_nlink=2, st_uid=0, st_gid=0, st_size=321024, st_atime=1489870628, st_mtime=1489870628, st_ctime=1489870628)
>>> os.stat(rC:\Windows)
os.stat_result(st_mode=16895, st_ino=281474976712108, st_dev=1893840342, st_nlink=1, st_uid=0, st_gid=0, st_size=32768, st_atime=1502900732, st_mtime=1502900732, st_ctime=1489837220)

    sep --- 使用os.sep获取当前平台的路径的分隔符(目录与子目录之间)(例如windows下是r‘\’,Linux下时‘/’)。

    linesep --- 使用os.linesep获取当前平台的换行符(例如windows下是‘\r\n’,Linux下时‘\n’)。

    pathsep --- 使用os.pathsep获取当前平台文件路径的分隔符(文件之间)(例如windows下是‘;’,Linux下时‘:’)。

    name --- 使用os.name获取当前平台名称。

      例如:

>>> os.sep
\\
>>> os.linesep
\r\n
>>> os.pathsep
;
>>> os.name
nt

    system() --- 执行系统命令。

      调用:os.system(command)

      例如:

>>> os.system(ping www.baidu.com)

正在 Ping www.A.sHiFeN.com [220.181.112.244] 具有 32 字节的数据:
来自 220.181.112.244 的回复: 字节=32 时间=38ms TTL=55
来自 220.181.112.244 的回复: 字节=32 时间=38ms TTL=55
来自 220.181.112.244 的回复: 字节=32 时间=38ms TTL=55
来自 220.181.112.244 的回复: 字节=32 时间=37ms TTL=55

220.181.112.244 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 37ms,最长 = 38ms,平均 = 37ms

    environ --- 使用os.environ获取系统环境变量。

      例如:

>>> os.environ
environ({COMPUTERNAME: DESKTOP-KTUG9G5, APPDATA: C:\\Users\\BLUE\\AppData\\Roaming, USERDOMAIN_ROAMINGPROFILE: DESKTOP-KTUG9G5, HOMEPATH: \\Users\\BLUE, NUMBER_OF_PROCESSORS: 8, PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC, ONEDRIVE: C:\\Users\\BLUE\\OneDrive, LOGONSERVER: \\\\DESKTOP-KTUG9G5, OS: Windows_NT, TEMP: C:\\Users\\BLUE\\AppData\\Local\\Temp, COMMONPROGRAMW6432: C:\\Program Files\\Common Files, PROGRAMDATA: C:\\ProgramData, PROMPT: $P$G, COMMONPROGRAMFILES(X86): C:\\Program Files (x86)\\Common Files, PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel, LOCALAPPDATA: C:\\Users\\BLUE\\AppData\\Local, USERNAME: BLUE, PROCESSOR_REVISION: 3c03, PROGRAMFILES: C:\\Program Files, PROGRAMW6432: C:\\Program Files, WINDIR: C:\\Windows, PUBLIC: C:\\Users\\Public, ASL.LOG: Destination=file, PSMODULEPATH: C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules, PROCESSOR_LEVEL: 6, SYSTEMROOT: C:\\Windows, SESSIONNAME: Console, ALLUSERSPROFILE: C:\\ProgramData, SYSTEMDRIVE: C:, COMSPEC: C:\\Windows\\system32\\cmd.exe, PROGRAMFILES(X86): C:\\Program Files (x86), PROCESSOR_ARCHITECTURE: AMD64, HOMEDRIVE: C:, TMP: C:\\Users\\BLUE\\AppData\\Local\\Temp, COMMONPROGRAMFILES: C:\\Program Files\\Common Files, PATH: D:\\Program Files\\Anaconda3\\Library\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;D:\\Program Files\\Anaconda3;D:\\Program Files\\Anaconda3\\Scripts;D:\\Program Files\\Anaconda3\\Library\\bin;C:\\Users\\BLUE\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\BLUE\\AppData\\Local\\GitHubDesktop\\bin, USERDOMAIN: DESKTOP-KTUG9G5, USERPROFILE: C:\\Users\\BLUE})

    path.abspath() --- 获取文件的绝对路径

      调用:os.path.abspath(filename)

      例如:

>>> os.chdir(rC:\windows)
>>> os.path.abspath(regedit.exe)
C:\\windows\\regedit.exe

    path.split() --- 传入一个文件路径,返回一个tuple(由两部分构成(path, filename))。

      调用:os.path.split(path)

      例如:

    path.dirname() --- 获取路径中的目录。

      调用:os.path.dirname(path)

    path.basename() --- 获取路径中的文件名。

      调用:os.path.basename(path)

>>> os.path.dirname(rC:\Windows\System32\drivers\etc\hosts)
C:\\Windows\\System32\\drivers\\etc
>>> os.path.basename(rC:\Windows\System32\drivers\etc\hosts)
hosts
>>> os.path.split(rC:\Windows\System32\drivers\etc\hosts)
(C:\\Windows\\System32\\drivers\\etc, hosts)

    path.exists() --- 判断路径是否存在。

      调用:os.path.exists(path)

    path.isabs() --- 判断路径是否是绝对路径。

      调用:os.path.isabs(path)

    path.isfile() --- 判断是否是文件。

      调用:os.path.isfile(path)

    path.isdir() --- 判断是否是目录。

      调用:os.path.isdir(path)

      例如:

>>> os.path.exists(rC:\Windows\System32\drivers\etc\hosts)
True
>>> os.path.exists(rC:\Windows\System32\drivers\etc\abcd)
False
>>> os.path.isabs(rC:\Windows\System32\drivers\etc\hosts)
True
>>> os.path.isabs(r../)
False
>>> os.path.isfile(C:\Windows\System32\drivers\etc\hosts)
True
>>> os.path.isfile(C:\Windows\System32\drivers\etc)
False
>>> os.path.isdir(C:\Windows\System32\drivers\etc)
True
>>> os.path.isdir(C:\Windows\System32\drivers\etc\hosts)
False

    path.join() --- 将一个或多个路径正确地连接起来。

      调用:os.path.join(path, *paths)

    path.getatime() --- 获取文件最后的访问时间(以时间戳的形式返回)。

      调用:os.path.getatime(path)

    path.getmtime() --- 获取文件最后的修改时间(以时间戳的形式返回)。

      调用:os.path.getmtime(path)

      例如:

>>> os.path.join(C:, r\windows\System32, r\System32\drivers)
C:\\System32\\drivers
>>> os.path.join(C:, r\windows\System32)
C:\\windows\\System32
>>> os.path.getatime(C:\Windows\System32\drivers\etc\hosts)
1501070798.585747
>>> os.path.getmtime(C:\Windows\System32\drivers\etc\hosts)
1502505489.0068946

 

以上是关于python---os模块使用详解的主要内容,如果未能解决你的问题,请参考以下文章

Python3 -- OS模块详解

python os.walk()代码详解

python os.path模块常用方法详解

python os.path模块常用方法详解

python os.path模块用法详解

python os.path模块常用方法详解