python3中的os.path模块

      os.path模块主要用于获取文件的属性,这里对该模块中一些常用的函数做些记录。

  • os.abspath(path):获取文件的绝对路径。这里path指的是路径,例如我这里输入“data.csv”
 [In]  os.path.abspath('data.csv')  
[Out]  'E:\\kaggle\\Titanic\\data.csv'
  • os.path.basename(path):获取文件名称。该函数默认通过 ‘\’来截取字符串获取文件名,返回最后一个'\'符号后面的内容
 [In]  os.path.basename('test\\123\\data.csv') 
[Out]  'data.csv'
  • os.path.commonprefix(list):返回list(包含多个路径)中,path共有的最长路径
[In]   pa=['E:\\kaggle\\a\\1','E:\\kaggle\\b\\1','E:\\kaggle\\a\\2']
       os.path.commonprefix(pa) 
[Out]  'E:\\kaggle\\'
  • os.apth.dirname:返回文件路径
[In]   os.path.dirname(os.path.abspath('data.csv'))
[Out]  'E:\\kaggle\\Titanic' 
  • os.path.exists(path):判断路径是否存在,若存在则返回True,不存在则返回False
[In]   os.path.exists('E:\\kaggle\1') 
[Out]  False
  • os.path.getatime(path):返回文件最近的访问时间
  • os.path.getmtime(path):返回文件最近的修改时间
  • os.path.getctime(path):返回文件的创建时间
  • os.path.join(path1,path2,,,):拼接路径,不过有几条准则

       (1)输入的路径头部不包含'./'、'/'时,   函数会将每个路径间加“\\”拼接起来

[In]   os.path.join('E:\\','kaggle','Titanic')
[Out]  'E:\\kaggle\\Titanic'

       (2)当输入的路径中只有一个路径头部包含 ‘/’ 时,函数会去掉该路径前面(从左至右,按路径的输入顺序)所有路径,然后在剩余路径间加 ‘\\’ 将它们拼接起来,不过会保留 ‘\’

[In]   os.path.join('E','/kaggle','Titanic')
[Out]  '/kagg:le\\Titanic'

       (3)当输入的路径中有多个路径包含 '\' 时,则会从最后一个包含 '\' 的路径开始拼接其后所有的路径,之前的路径全部丢掉

[In]   os.path.join('E','/kaggle','/Titanic','Test.csv')
[Out]  '/Titanic\\Test.csv'

        (4)当输入的路径中头部包含 './'时,会将该路径之前的路径也进行拼接,不过会保留 './'符号

[In]   os.path.join('E','kaggle','./Titanic','Test.csv')
[Out]  'E\\kaggle\\./Titanic\\Test.csv'

       (5) 当输入的路径中同时存在头部包含  '\' 、'./'的情况,优先生效  '\'的作用。

[In]   os.path.join('E','./kaggle','/Titanic','Test.csv')
[Out]  '/Titanic\\Test.csv'

      (6) 测试过程中发现 ' : '同样存在特殊作用的情况,不过这里就不再说明,应为不常用

      这里顺便介绍一下python中join函数的作用,它同样用来连接字符串,达到与os.path.join()同样的作用。例如

[In]   a=['E:','kaggle','Titanic']
       '\\'.join(a)
[Out]  'E:\\kaggle\\Titanic' 
  • os.path.split(path):将路径拆分为目录名(dirname)和文件名(filename)
[In]   os.path.split('E:\\kaggle\\Titanic\\test.csv')
[Out]  ('E:\\kaggle\\Titanic', 'test.csv')

      

猜你喜欢

转载自www.cnblogs.com/hgz-dm/p/10886341.html