python之os模块

os模块就是python和操作系统交互的模块

1、os.getcwd,获取当前的工作脚本的工作目录

r = os.getcwd()
print(r)

# E:pythonpycharmgoto_endweek2模块系列

2、os.chdir,改变当前脚本的工作目录,相当于linux命令中的cd

tmp_path = "c:/tmp"   #先定义一个路径
print(os.getcwd())     #查看当前的工作路径
# E:pythonpycharmgoto_endweek2模块系列
os.chdir(tmp_path)     #使用os.chdir命令切换工作路径到指定的目录
print(os.getcwd())     #再次使用os.getcwd来获取当前的工作路径

# c:	mp

3、os.curdir这个方法目前不会使用,网上也没有查到相关的资料

4、os.pardir,获取当前目录的父目录的名称,我们可以看到,父目录其实就是“..”

tmp_path = "E:pythonpycharmgoto_endweek2模块系列"
os.chdir(tmp_path)                 #使用os.chdir方法切换当前的工作目录到tmp_path中
print(os.getcwd())                 #使用os.getcwd获取当前的工作目录
print(type(os.pardir),os.pardir,sep="
")   #打印os.pardir的类型和值,可以看到是字符串类型,值为".."和linxu中的一样
# <class 'str'>
# ..

5、os.makedirs,创建多级目录

# os.makedirs()
print("==========os.makedirs===============")
tmp_path = "c:/tmp"
os.chdir(tmp_path)
print(os.getcwd())
make_path = "c:/tmp/a/b/c"
# os.makedirs(make_path)

#可以看到目录已经创建成功C:	mpac

6、os.removedirs 如果层级目录全部为空,则会递归删除,直到最后一个父目录

s = "os.removedirs"
print(s.center(40,"="))
# make_path = "c:/tmp/a/b/c"
# os.removedirs(make_path)        删除指定的目录,查看已经删除了

7、os,makedir,创建单级目录

# os.mkdir()
s = "os.mkdir"
print(s.center(40,"="))
# make_path = "c:/tmp/a"
# os.mkdir(make_path)   可以看到在指定目录下创建了a这个目录

8、os.rmdir,删除单级目录

# os.rmdir()
s = "os.rmdir"
print(s.center(40,"="))
# make_path = "c:/tmp/a"
# os.rmdir(make_path)           可以看到a这个目录已经被删除了

9、os.listdir,列出指定目录下的文件和目录

# os.listdir()
s = "os.listdir"
print(s.center(40,"="))
# list_dir = "F:BaiduNetdiskDownload第一部分第一部分"
# print(os.listdir(list_dir))

10、os.remove删除文件

# os.remove()
s = "os.remove"
list_path = "c:/tmp"
remove_path = "C:/tmp/a.txt"
print(s.center(40,"="))
# print(os.listdir(list_path))
# ['a.txt']
# os.remove(remove_path)
#
# print(os.listdir(list_path))
# []

11、os.rename,重命名文件或者目录

os.rename("oldname","newname")
s = "os.rename"
print(s.center(40,"="))

rename_dir = "c:/2"
rename_file = "C:/tmp/a.txt"
print(os.listdir(rename_dir))
os.rename(rename_file,"c:/tmp/a_new.txt")
print(os.listdir(rename_dir))

print(os.listdir("c:/"))
os.rename(rename_dir,"c:/1")
print(os.listdir("c:/"))

12、os.stat获取文件或者目录的信息

# os.stat("path/filename")
s = "os.stat"
print(s.center(40,"="))

stat_dir = "c:/1"
stat_file = "c:/tmp/a_new.txt"
print(os.stat(stat_dir))
这里可以获取到很多的信息,但是我们一般最常用的就是获取这个文件的字节大小,获取字节大小可以用下面的方法获取
# os.stat_result(st_mode=16895, st_ino=9288674231537252, st_dev=1014518766, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1499562788, st_mtime=1499562788, st_ctime=1499562788) print(os.stat(stat_file)) # os.stat_result(st_mode=33206, st_ino=43910096366946995, st_dev=1014518766, st_nlink=1, st_uid=0, st_gid=0, st_size=16, st_atime=1499562688, st_mtime=1499562696, st_ctime=1499562688)

13、os.set这个方法不会使用,网上也没有查到相关的信息

14、os.linesep,输出当前平台的换行符

s = "os.linesep"
print(s.center(40,"="))
print(list(os.linesep))

# ['
', '
']

15、os.pathsep,输出用于分割文件路径的字符串

s = "os.pathsep"
print(s.center(40,"="))
print(list(os.pathsep))

# [';']

 

16、os.name,输入当前平台的操作系统,windows--->nt,linux为posi

s = "os.name"
print(s.center(40,"="))
print(os.name)

# nt

17、os.system,执行操作系统的命令,因为我这里是windows,所有我就只能执行windows的系统命令

s = "os.system"
print(s.center(40,"="))
os.system("ipconfig")

18、os.environ,获取操作系统的环境变量

s = "os.environ"
print(s.center(40,"="))
print(os.environ)

# environ({'ALLUSERSPROFILE': 'C:\ProgramData', 'APPDATA': 'C:\Users\Administrator\AppData\Roaming', 'COMMONPROGRAMFILES': 'C:\Program Files\Common Files', 'COMPUTERNAME': '97ODP8DJGDRURUA', 'COMSPEC': 'C:\Windows\system32\cmd.exe', 'FP_NO_HOST_CHECK': 'NO', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\Users\Administrator', 'LOCALAPPDATA': 'C:\Users\Administrator\AppData\Local', 'LOGONSERVER': '\\97ODP8DJGDRURUA', 'MOZ_PLUGIN_PATH': 'C:\Program Files\Foxit Software\Foxit Reader\plugins\', 'NUMBER_OF_PROCESSORS': '2', 'OS': 'Windows_NT', 'PATH': 'C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'x86', 'PROCESSOR_IDENTIFIER': 'x86 Family 6 Model 37 Stepping 5, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '2505', 'PROGRAMDATA': 'C:\ProgramData', 'PROGRAMFILES': 'C:\Program Files', 'PSMODULEPATH': 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\', 'PUBLIC': 'C:\Users\Public', 'PYCHARM_HOSTED': '1', 'PYTHONIOENCODING': 'UTF-8', 'PYTHONPATH': 'E:\python\pycharm', 'PYTHONUNBUFFERED': '1', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\Windows', 'TEMP': 'C:\Users\Administrator\AppData\Local\Temp', 'TMP': 'C:\Users\Administrator\AppData\Local\Temp', 'USERDOMAIN': '97ODP8DJGDRURUA', 'USERNAME': 'Administrator', 'USERPROFILE': 'C:\Users\Administrator', 'WINDIR': 'C:\Windows', 'WINDOWS_TRACING_FLAGS': '3', 'WINDOWS_TRACING_LOGFILE': 'C:\BVTBin\Tests\installpackage\csilogfile.log'})

 

20、os.abspath,返回指定path的规范化绝对路径,这里真没看懂什么意思,感觉实际测试的结果没有什么区别

s = "os.path.sbspath"
print(s.center(40,"="))
abs_path = "F:BaiduNetdiskDownload第一部分第一部分"
print(os.path.abspath(abs_path))
# F:BaiduNetdiskDownload第一部分第一部分

  

21、os.path.split,把文件名和目录分割,然后放在一个tuple中,这里的文件名包括文件及其上一级目录

# os.path.split()
s = "os.path.split"
print(s.center(40,"="))
split_path = "F:BaiduNetdiskDownload第一部分第一部分085-上节内容回顾2.avv"

print(os.path.split(split_path))


# ('F:\BaiduNetdiskDownload\第一部分', '第一部分x0085-上节内容回顾2.avv')

  

22、os.path.dirname,返回指定路径的目录

s = "os.path.dirname"
print(s.center(40,"="))

dir_name = "F:BaiduNetdiskDownload第一部分第一部分085-上节内容回顾2.avv"

print(os.path.dirname(dir_name))
# F:BaiduNetdiskDownload第一部分

  

23、os.path.basename,返回指定路径的文件名

s = "os.path.basename"
dir_name = "F:BaiduNetdiskDownload第一部分第一部分085-上节内容回顾2.avv"
print(s.center(40,"="))
print(os.path.basename(dir_name))

# 第一部分 85-上节内容回顾2.avv
#这里我们可以和os.path.split的方法比较,发现python认为的文件名要包括文件名以及他的上一级目录

  

24、os.path.exists,指定的路径如果存在,则返回True,如果不存在,则返回False

s = "os.path.exists"
print(s.center(40,"="))
exists_dir = "F:BaiduNetdiskDownload第一部分第一部分"

print(os.path.exists(exists_dir))

exists_dir = "F:BaiduNetdiskDownload第一部分第一1部分"
print(os.path.exists(exists_dir))


# True
# False

  

25、os.path.isabs,指定的路径如果是绝对路径,则返回True,如果不是,则返回False

s = "os.path.isabs"
print(s.center(40,"="))
abs_dir = "F:BaiduNetdiskDownload第一部分第一部分"
print(os.path.isabs(abs_dir))


abs_dir = "BaiduNetdiskDownload第一部分第一部分"
print(os.path.isabs(abs_dir))
#
# True
# False

  

26、os.path.isfile,指定的如果是文件,则返回True,如果是目录则返回False

s = "os.path.isfile"
print(s.center(40,"="))
print(os.getcwd())
# c:	mp
dir_name = "a_new.txt"
print(os.path.isfile(dir_name))
# True

dir_name = "C:	mpa_new.txt"
print(os.path.isfile(dir_name))
# False

  

27、os.path.isdir,指定的路径如果是目录,则返回True,如果是文件则返回False

s = "os.path.isdir"
print(s.center(40,"="))
dir_name = "E:/360"
print(os.path.isdir(dir_name))

dir_name = "a_new.txt"
print(os.path.isfile(dir_name))

  

28、os.path.gatetime,返回指定的目录或者文件的最后的存取时间

s = "os.path.getatime"
print(s.center(40,"="))
getatime_path = "c:/tmp/a_new.txt"
print(os.path.getatime(getatime_path))

# 1499562688.7266502

  

29、os.path.gatmtime,返回指定的目录或者文件的最后修改时间

s = "os.path.getmtime"
print(s.center(40,"="))
getatime_path = "c:/tmp/a_new.txt"
print(os.path.getmtime(getatime_path))
# 1499562696.1190732

30、获取文件的大小可以这样获取

a = os.stat("D:isooracleRAC模板部署视频.exe")
print(a.st_size)

  

 31、通过dirname可以获取指定路径的父路径的绝对路径,可以看下面的例子,这个到导入模块的时候用的比较多

a = os.path.dirname("D:isooracleRAC模板部署视频.exe")
print(a)
# D:isooracle
b = os.path.dirname(a)
print(b)
# D:iso
c = os.path.dirname(b)
print(c)
# D:

 

原文地址:https://www.cnblogs.com/bainianminguo/p/6395871.html