os模块

 

1.os.getcwd()

获得当前的工作目录,即当前python脚本所在的目录

2.os.chdir(path)

改变当前脚本的工作目录,没有返回值,直接改变工作目录,相当于cd

os.chdir("/Users/ttt/PycharmProjects/s14/")
os.chdir("../")
print(os.getcwd()

3.os.mkdirs()

可以生成多层目录

os.makedirs("/Users/ttt/PycharmProjects/s14/test1/test2")

4.os.mkdir()

只能生成单层目录

os.mkdir("/Users/ttt/PycharmProjects/s14/test3")

5.os.removedirs()

若目录为空,则删除,并递归到上一层,如上一层也为空,则也删除;若最底层不为 空则报错

OSError: [Errno 66] Directory not empty: '/Users/ttt/PycharmProjects/s14/test1/test2'

os.removedirs("/Users/ttt/PycharmProjects/s14/test1/test2")

6.os.rmdir()

  如果目录为空,则删除单级目录

os.rmdir("/Users/ttt/PycharmProjects/s14/test3")

7.os.remove()

  删除一个文件

8.os.listdir(path)

 列出自动目录下所有文件和子目录,包括隐藏文件,并已列表的方式返回

9.os.rename(oldname,newname)

修改文件或者目录名称

os.rename("test00.py","test01.py")
os.rename("../day5","../day6")

10.os.sep

输出操作系统下特定的路径分隔符,win下为"\\",linux下为"\"

11.os.linesep

输出当前平台使用的行分隔符,win下为"\t\n",linux下为"\n",mac下为"\r"

12.os.name

输出字符串,制定当前使用平台,win为"nt",linux为"posix"

13.os.pathsep

输出用于分隔文件路径字符串

14.os.environment

输出系统环境变量

 

 

os.path.abspath(path)  返回path的绝对路径

print(os.path.abspath("../test1/test2"))
结果:/Users/ttt/PycharmProjects/s14/test1/test2

os.path.split(path)  将path分隔为目录、文件名两元组返回

print(os.path.split("test1/test2/test3"))
结果:('test1/test2', 'test3')

os.path.dirname(path) 返回path的目录,也就是os.path.split(path)第一个元素

print(os.path.dirname("test1/test2/test3"))
结果:test1/test2

os.path.basename(path)返回path最后的文件名,如果paht以/或者\结尾,则返回空,也就是os.path.split(path)第二个元素

print(os.path.basename("test1/test2/test3"))
结果:test3
print(os.path.basename("test1/test2/test3/"))
结果:

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

print(os.path.exists("../test1/test2"))
结果:True
print(os.path.exists("../test1/test3"))
结果:False

os.path.isabs(path)如果path是绝对路径返回True,否则返回False

print(os.path.isabs("../test1/test2"))
结果:False
print(os.path.isabs("/Users/yixia/PycharmProjects/s14/test1/test2"))
结果:True

os.path.isfile(path)如果path是一个存在的文件返回True,否则返回False

print(os.path.isfile("../test1/test2/333.py"))
结果:True
print(os.path.isfile("../test1/test2/444.py"))
结果:False

os.path.isdir(path)如果path是一个已经存在的目录返回True,否则返回False

print(os.path.isdir("../test1/test2/333.py"))
结果:False
print(os.path.isdir("../test1/test2/"))
结果:True
print(os.path.isdir("../test1/test3/"))
结果:False

os.path.join(path1,path2,path3)将多个路径组合后返回,不判断是否真的存在

print(os.path.join("/Users/yixia/PycharmProjects/s14/","../test","test01.py"))

os.path.getatime(path)返回指定文件或着指定目录的最后存取时间

print(os.path.getatime("/Users/yixia/PycharmProjects/s14/"))
结果:1532576460.0

os.path.getmtime(path)返回指定文件或着指定目录的最后修改时间

print(os.path.getmtime("/Users/yixia/PycharmProjects/s14/"))
结果:1532512901.0

 

 

(1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如:
             python d:/pythonSrc/test/test.py
             那么将输出 d:/pythonSrc/test
 
  (2).当"print os.path.dirname(__file__)"所在脚本是以相对路径被运行的, 那么将输出空目录,比如:
             python test.py
 
             那么将输出空字符串
 
os.path.dirname(__file__)返回脚本的路径,但是需要注意一下几点:
1、必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name '__file__' is not defined
2、在运行的时候如果输入完整的执行的路径,则返回.py文件的全路径如:
python c:/test/test.py 则返回路径 c:/test ,如果是python test.py 则返回空
3、结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合
os.path.dirname(os.path.abspath(__file__)),os.path.abspath(__file__)返回的是.py文件的绝对路径
这就是os.path.dirname(__file__)的用法,其主要总结起来有:
1、不要已命令行的形式来进行os.path.dirname(__file__)这种形式来使用这个函数
2、结合os.path.abspath()使用

 

posted @ 2018-07-25 17:56  lillianli  阅读(132)  评论(0)    收藏  举报