麦子学院 2017-08-19 21:04
Python中os模块如何使用?
回复:0 查看:2636
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
来源:
博客园