Python学习之os模块的使用详解

本文和大家分享的主要是python 中os 模块相关使用方法详解,一起来看看吧,希望对大家 学习python 有所帮助。

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(r’C:\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(r’D:’)

[’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(r’C:\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(r’C:\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(r’C:\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(r’C:\Windows\System32\drivers\etc\hosts’)’

C:\\Windows\\System32\\drivers\\etc’

>>> os.path.basename(r’C:\Windows\System32\drivers\etc\hosts’)

’hosts’

>>> os.path.split(r’C:\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(r’C:\Windows\System32\drivers\etc\hosts’)

True

>>> os.path.exists(r’C:\Windows\System32\drivers\etc\abcd’)

False

>>> os.path.isabs(r’C:\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

来源: 博客园

时间: 2024-12-24 23:50:31

Python学习之os模块的使用详解的相关文章

python 学习笔记 os模块常用项

删除指定目录树中的空目录 #!/usr/bin env python import os import sys dir =sys.argv[1] if os.path.isdir(dir):    for root,dirs,files in os.walk(dir,topdown=False):#从最里向外遍历       for d in dirs:          if not os.listdir(os.path.join(root,d)):#判断目录是否为空             

os模块目录操作详解

os模块是一个功能强大模块,主要提供操作系统相关功能接口,例如:文件目录操作,进程相关操作,执行系统命令,解析环境变量等.使用os模块,我们首先要导入: import os 下面我们对这些功能逐一介绍. 1:目录相关操作: 目录相关常用操作如下表: 方法 说明 os.getcwd() 获取当前脚本工作的目录路径 os.getcwdb() 同上,返回byte对象 os.chdir(path) 修改当前目录为path os.mkdir(path, mode=0o777, *, dir_fd=None

Python学习笔记——os模块

直接输出系统命令到屏幕,该方法获取的命令返回值不可被赋值给变量,输出结果受编码影响会乱码: import os os.system("ipconfig") 将执行获取的系统命令存入内存,再将内存中的结果读取出来输出到屏幕,不会乱码: import os com = os.popen("ipconfig").read() print(com) 在执行文件所在目录下创建文件夹 import os os.makedirs("makedir")

Python学习之Argparse 解析脚本参数详解

Argparse 是 Python 标准库中推荐的命令行解析模块,经常需要解析脚本参数的话这是个方便的工具模块,摆脱万年手动 system.argv .本文和大家分享的就是python中Argparse解析脚本参数相关内容,一起来看看吧,希望对大家学习python有所帮助. 引入 import argparse parser = argparse.ArgumentParser(description='描述说明,可用于 Help 输出说明', add_help=True) parser.pars

Python学习之列表的内部实现详解

本文和大家分享的主要是列表在 CPython中的实现,一起来看看吧,希望对大家学习python有所帮助. Python 中的列表非常强大,看看它的内部实现机制是怎么样的,一定非常有趣. 下面是一段 Python 脚本,在列表中添加几个整数,然后打印列表. >>> l = [] >>> l.append(1) >>> l.append(2) >>> l.append(3) >>> l [1, 2, 3] >>

Python学习之通用序列类型数据详解

本文和大家分享的主要是python通用序列类型数据的相关操作,一起来看看吧,希望对大家学习python有所帮助. Python的序列,Python有6种内建的序列,包括:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.其中最为常用的是Python的列表和元组. Python的序列 Python有6种内建的序列,包括:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.其中最为常用的是Python的列表和元组. Python序列的应用 Pyt

Python学习之异常重试解决方法详解

本文和大家分享的是在使用python 进行数据抓取中,异常重试相关解决办法,一起来看看吧,希望对大家学习python有所帮助. 在做数据抓取的时候,经常遇到由于网络问题导致的程序保存,先前只是记录了错误内容,并对错误内容进行后期处理. 原先的流程: defcrawl_page(url): pass deflog_error(url): pass url = "" try: crawl_page(url) except: log_error(url) 改进后的流程: attempts =

Nodejs学习之net模块相关用法详解

net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socket).也就是说,做node服务端编程,net基本是绕不开的一个模块.本文就和大家详细扒一扒Nodejs的net相关用法,希望对大家学习Nodejs 有所帮助吧.  从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了:  · net.Server:TCP server,内部

python学习第四周之内置方法详解

1.python的内置方法有很多,用的时候可以自行百度,我只写几个我感兴趣的(任性.) 2.(1)bin(),将十进制转变为二进制 >>> bin(2) '0b10' (2)chr(),查看数字所对应的字母, >>> chr(98) 'b' (3)ord(),查看字母对应的数字 >>> ord('a') 97 (4)hex(),转换成十六进制 >>> hex(255) '0xff' (5)oct(),转成成八进制 >>&g