python os 模块

提供对操作系统进行调用的接口

import os

os.getcwd()  linux pwd命令
# linux
# = linux pwd 命令 
>>> os.getcwd()
'/root'


# windows
>>> os.getcwd()
'C:\Users\Administrator'
'''

os.chdir() linux cd命令
# 改变当前脚本工作目录;相当于shell下cd 

# linux
>>> os.chdir('/data')
>>> 
>>> 
>>> os.getcwd()
'/data'

# windows
第一种方法
>>> os.chdir("c:\Users")
>>>
>>> os.getcwd()
'c:\Users'
>>>

第二种方法
>>> os.chdir(r"c:UsersAdministrator")
>>>
>>> os.getcwd()
'c:\Users\Administrator'
>>>

推荐第二种方法

os.makedirs()  linux mkdir -p 递归目录

windows

>>> os.makedirs(r"c:acd")

 linux

>>> os.makedirs('/data/aaa')

[root@salt-server-192 ~]# ls /data/
aaa/   app/   mysql/ 
os.removedirs()   若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

先删d,检测到c空目录再删c,再到b...
# windows
>>> os.removedirs(r"c:acd")  

# linux 
>>> os.removedirs('/data/aaa')

[root@salt-server-192 data]# ls
app  mysql
os.mkdir()    生成单级目录;相当于linux 中mkdir dirname
windows
# windows

>>> os.mkdir(r"c:a")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'c:\a\b'

>>> os.mkdir(r"c:a")
>>> os.mkdir(r"c:a")

linux

# linux
>>> os.mkdir('/data/a')
>>> os.mkdir('/data/a/b')

[root@salt-server-192 b]# pwd
/data/a/b

os.rmdir()
删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
# windows
>>> os.rmdir(r"c:a")

# linux
os.rmdir('/data/a/b')

[root@salt-server-192 a]# pwd
/data/a
[root@salt-server-192 a]# ls
[root@salt-server-192 a]# 
os.listdir() 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
windows
# windows
>>> os.listdir('..')
['Administrator', 'All Users', 'Default', 'Default User', 'desktop.ini', 'Public
']

>>> os.listdir(r'f:')
['$RECYCLE.BIN', 'KwDownload', 'MyDrivers', 'QMDownload', 'qqpcmgr_docpro', 'Sys
tem Volume Information', '迅雷下载']

linux

# linux
>>> os.listdir('.')
['a', 'app', 'mysql']
>>> 
>>> os.listdir('..')
['tmp', 'lost+found', 'home', 'selinux', 'srv', 'dev', 'media', 'lib', 'etc', 'opt', 'proc', 'var', 'data', 'boot', 'lib64', 'sbin', '.autorelabel', 'mnt', 'root', 'bin', '.autofsck', 'sys', 'usr']
>>> 
>>> os.listdir('/root/')
['.tcshrc', '.mysql_history', 'tar', '.cshrc', '.viminfo', 'sh', '.bash_history', '.pki', 'install.log', 'anaconda-ks.cfg', '.bash_profile', '.bashrc', '.bash_logout', 'install.log.syslog', '.ssh']
>>> 
os.remove()  # 删除一个文件
os.rename("oldname","newname")  # 重命名文件/目录

os.stat() 获取文件/目录信息
# linux
>>> os.stat('/root/anaconda-ks.cfg')
posix.stat_result(st_mode=33152, st_ino=393225, st_dev=64768L, st_nlink=1, st_uid=0, st_gid=0, st_size=1096, st_atime=1509983597, st_mtime=1509983597, st_ctime=1509983598)
>>> 

# windows
>>> os.stat(r'..desktop.ini')
os.stat_result(st_mode=33206, st_ino=281474976729839, st_dev=3459212205, st_nlin
k=1, st_uid=0, st_gid=0, st_size=174, st_atime=1247547264, st_mtime=1247547264,
st_ctime=1247547264)
os.sep   输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
# windows
>>> os.sep
'\'

# linux
>>> os.sep
'/'
os.linesep 输出当前平台使用的行终止符,win下为"	
",Linux下为"
"
# windows
>>> os.linesep
'
'

# linux
>>> os.linesep
'
'

os.environ() 显示系统环境变量

print(os.environ)

environ({'ALLUSERSPROFILE': 'C:\ProgramData', 'APPDATA': 'C:\Users\Administrator\AppData\Roaming', 'COMMONPROGRAMFILES': 'C:\Program Files\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\Program Files (x86)\Common Files', 'COMMONPROGRAMW6432': 'C:\Program Files\Common Files', 'COMPUTERNAME': 'USER-20171103BR', 'COMSPEC': 'C:\Windows\system32\cmd.exe', 'FP_NO_HOST_CHECK': 'NO', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\Users\Administrator', 'LOCALAPPDATA': 'C:\Users\Administrator\AppData\Local', 'LOGONSERVER': '\\USER-20171103BR', 'NUMBER_OF_PROCESSORS': '4', 'OS': 'Windows_NT', 'PATH': 'C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Users\Administrator\AppData\Local\Programs\Python\Python36', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 58 Stepping 9, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '3a09', 'PROGRAMDATA': 'C:\ProgramData', 'PROGRAMFILES': 'C:\Program Files', 'PROGRAMFILES(X86)': 'C:\Program Files (x86)', 'PROGRAMW6432': 'C:\Program Files', 'PSMODULEPATH': 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\', 'PUBLIC': 'C:\Users\Public', 'PYCHARM_HOSTED': '1', 'PYTHONIOENCODING': 'UTF-8', 'PYTHONPATH': 'C:\Users\Administrator\PycharmProjects', 'PYTHONUNBUFFERED': '1', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\Windows', 'TEMP': 'C:\Users\ADMINI~1\AppData\Local\Temp', 'TMP': 'C:\Users\ADMINI~1\AppData\Local\Temp', 'USERDOMAIN': 'USER-20171103BR', 'USERNAME': 'Administrator', 'USERPROFILE': 'C:\Users\Administrator', 'WINDIR': 'C:\Windows', 'WINDOWS_TRACING_FLAGS': '3', 'WINDOWS_TRACING_LOGFILE': 'C:\BVTBin\Tests\installpackage\csilogfile.log', '_DFX_INSTALL_UNSIGNED_DRIVER': '1'})
>>> os.environ
environ({'ALLUSERSPROFILE': 'C:\ProgramData', 'APPDATA': '  # 分隔文件路径字符串 ;
tor\AppData\Roaming', 'COMMONPROGRAMFILES': 'C:\Program
 'COMMONPROGRAMFILES(X86)': 'C:\Program Files (x86)\Commo
RAMW6432': 'C:\Program Files\Common Files', 'COMPUTERNAME
 'COMSPEC': 'C:\Windows\system32\cmd.exe', 'FP_NO_HOST_C
VE': 'C:', 'HOMEPATH': '\Users\Administrator', 'LOCALAPPD
inistrator\AppData\Local', 'LOGONSERVER': '\\USER-20171
OCESSORS': '4', 'OS': 'Windows_NT', 'PATH': 'C:\Windows\s
:\Windows\System32\Wbem;C:\Windows\System32\WindowsPo
Program Files\TortoiseSVN\bin;C:\Users\Administrator\A
ms\Python\Python36', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS
WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_ID
amily 6 Model 58 Stepping 9, GenuineIntel', 'PROCESSOR_LEVE
EVISION': '3a09', 'PROGRAMDATA': 'C:\ProgramData', 'PROGRA
 Files', 'PROGRAMFILES(X86)': 'C:\Program Files (x86)', 'P
ogram Files', 'PROMPT': '$P$G', 'PSMODULEPATH': 'C:\Window
owerShell\v1.0\Modules\', 'PUBLIC': 'C:\Users\Public',
ole', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\Windows', 'TE
NI~1\AppData\Local\Temp', 'TMP': 'C:\Users\ADMINI~1\A
 'USERDOMAIN': 'USER-20171103BR', 'USERNAME': 'Administrato
:\Users\Administrator', 'WINDIR': 'C:\Windows', 'WINDOWS
 'WINDOWS_TRACING_LOGFILE': 'C:\BVTBin\Tests\installpack
 '_DFX_INSTALL_UNSIGNED_DRIVER': '1'})
 
os.pathsep    输出用于分割文件路径的字符串
>>> os.pathsep
';'

os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'

os.system()  运行shell命令,直接显示

# windows
os.system("dir")

# linux
>>> os.system("ls")
a  app    mysql
0
__file__   返回当前程序的相对路径程序本文件名
os.path.abspath('')    # 返回path规范化的绝对路径  
import os


print(os.path.abspath(__file__))



# 执行结果
C:UsersAdministratorPycharmProjectsssSSSday5mod_testpython_packagemod2.py

 可以用abspath显示  .. 真实路径

>>> os.path.abspath('..')
'C:\Users'
>>>
>>>
>>> os.path.abspath('.')
'C:\Users\Administrator.QH-20170325TNQR'


os.path.split('')  将path分割成目录和文件名二元组返回
# linux
>>> os.path.split('/data/a/1.txt')
('/data/a', '1.txt')
os.path.dirname('')   返回path的目录。
当前绝对路径目录名
C:UsersAdministrator.QH-20170325TNQRPycharmProjectsSSday4


os.path.basename('')  返回路径的文件名

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

>>> os.path.exists('data/a')
False
>>> 
>>> os.path.exists('/data/a')
True
os.path.isabs() 如果path是绝对路径,返回True    false
windows 有多个/ linux 有/ 开头就是绝对路径

# linux
>>> os.path.isabs('/data/')
True
>>> 
>>> os.path.isabs('data/')
False


# windows
>>> os.path.isabs(r'c\:')
False
>>>
>>>
>>> os.path.isabs(r'ca')
False
>>> os.path.isabs(r'c:a')
False
>>>
>>> os.path.isabs(r'c:a')

os.path.isfile('')   如果path是一个存在的文件,返回True。否则返回False
# linux
>>> os.path.isfile('/data/a/1.txt')
True
>>> 
>>> os.path.isfile('/data/a/')
False
os.path.isdir('')   如果path是一个存在的目录,则返回True。否则返回False

# linux
>>> os.path.isdir('/data/a')
True
>>> 
>>> os.path.isdir('/data/a/1.txt')
False

os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
# linux
>>> os.path.join('/data/','a','1.txt')
'/data/a/1.txt'
>>> os.path.join('/data/','a')
'/data/a'
print(os.path.getatime('.'))  # 返回path所指向的文件或者目录的最后存取时间
1513219594.0753474

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


os.path.getsize(path) 返回文件的大小
getsize不能获取文件夹大小

os.getpid() 查看自己pid

如果有父进程 用这个查看父进程pid
os.getppid()
 
原文地址:https://www.cnblogs.com/mingerlcm/p/8034051.html