溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python的os包與os.path模塊怎么用

發(fā)布時間:2022-03-01 13:38:22 來源:億速云 閱讀:160 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python的os包與os.path模塊怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、os常用方法

1.獲取當(dāng)前路徑 os.getcwd()

# coding:utf-8
import os
if __name__ == '__main__':
    print(os.getcwd())  # G:\workSpace\py_d

2.獲取指定路徑下有哪些文件和目錄,os.listdir(path)返回一個list

# coding:utf-8

import os

if __name__ == '__main__':
    print(os.listdir(os.getcwd()))  # ['.idea', 'main.py', 'os_module.py', 'sk']

3.創(chuàng)建目錄(一級) os.mkdir(paht)

os.mkdir(path) 創(chuàng)建目錄:

 以下兩種情況會報錯:

  •  2.要創(chuàng)建目錄的上級目錄不存在(a不存在,則不能創(chuàng)建b目錄)

  •  3.要創(chuàng)建的目錄已存在(b存在,則不能創(chuàng)建b目錄)

# coding:utf-8

import os

if __name__ == '__main__':

    os.mkdir('sk/a/b')  # 在當(dāng)前sk/a 目錄中創(chuàng)建b目錄
    # os.mkdir(os.path.join(os.getcwd(), 'sk', 'a', 'b')) 和上面的一樣,只不過換成了絕對路徑

4.刪除文件 os.remove(path)

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.remove(path)
    要求path是文件且存在
    """
    os.remove("sk/a/b/503.py")
    # os.remove(os.path.join(os.getcwd(), 'sk', 'a', 'b', '503.py')) 和上面的一樣,只不過路徑換成絕對路徑了

5.遞歸刪除空目錄 os.removedirs(path)

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.removedirs(path)
    如果最底層目錄不是空目錄直接報錯(s2不是空目錄則報錯)
    從最第底層目錄開始刪,一直刪到最上層目錄(先刪s2,再刪s1),當(dāng)要刪除的目錄不是空目錄時停止(s1不是空目錄則停止)
    """
    os.removedirs('s1/s2')
    # os.removedirs(os.path.join(os.getcwd(), 's1', 's2')) 和上面的一樣,只不過使用了絕對路徑

6.刪除空目錄 os.rmdir(path)

# coding:utf-8

import os

if __name__ == '__main__':

    """
      os.rmdir(path)
      path不存在且不是空目錄則報錯
    """
    os.rmdir('s1/s2')

7.創(chuàng)建多級目錄 os.makedirs(path)

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.makedirs(path,exists_ok=False) 創(chuàng)建多級目錄
    如果path目錄已存在則報錯,可以設(shè)置exist_ok 參數(shù)來抑制錯誤,exist_ok不等于False就不會拋出異常
    """
    os.makedirs("s1/s3")
    os.makedirs("s1/s3", exist_ok=True)

二、os.path 常用方法

1.路徑拼接 os.path.join(path2,path3…)

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.path.join(path2,path3......)
    將多個路徑拼接形成新的路徑
    """
    print(os.path.join(os.getcwd(), 's1', 's2'))  # G:\workSpace\py_d\s1\s2

2.路徑分離 os.path.split(path) 返回tuple

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.path.split(path) 分割路徑,返回一個tuple,由兩個元素構(gòu)成
    第2個元素是path中最后一層的目錄或者文件
    第1個元素是path中除去第二個元素后剩余的路徑,可以為空字符串
    """
    path = os.path.join(os.getcwd(), 's1', 's2')
    print(path)  # G:\workSpace\py_d\s1\s2.my
    print(os.path.split(path))  # ('G:\\workSpace\\py_d\\s1', 's2.my')
    print(os.path.split('dir1'))  # ('', 'dir1')

3.判斷是否是目錄 os.path.isdir(path)

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.path.is_dir(path) 判斷路徑是不是目錄,當(dāng)路徑不存在也返回False
    """
    print(os.path.isdir(os.getcwd()))  # True
    print(os.path.isdir(os.path.join(os.getcwd(), 'main.py')))  # False 這是文件
    print(os.path.isdir('http://xxx.com'))  # 不存在也返回False

4.判斷是否是文件 os.path.isfile(paht)

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.path.is_file(path) 判斷路徑是不是文件,當(dāng)路徑不存在也返回False
    """

    print(os.path.isfile(os.getcwd()))  # False 這是目錄
    print(os.path.isfile(os.path.join(os.getcwd(), 'main.py')))  # True 是文件
    print(os.path.isfile(os.path.join(os.getcwd(), 'abc')))  # False 不存在也返回False

5.判斷路徑是否存在 os.path.exists(path)

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.path.exists(path) 判斷路徑是不是文件,當(dāng)路徑不存在也返回False
    """

    print(os.path.exists(os.path.join(os.getcwd(), 'main.py')))  # True main.py存在
    print(os.path.exists(os.path.join(os.getcwd(), 'abc.py')))  # False abc.py 不存在

6.判斷路徑是不是絕對路徑 os.path.isabs(path)

# coding:utf-8

import os

if __name__ == '__main__':

    """
    os.path.abs(path) 判斷路徑是不是絕對路徑,與存不存在無關(guān)
    """
    print(os.getcwd())  # G:\workSpace\py_d
    print(os.path.isabs(os.path.join(os.getcwd(), 'main.py')))  # True main.py存在
    print(os.path.isabs(os.path.join(os.getcwd(), 'abc.py')))   # True abc.py不存在
    print(os.path.isabs('a/b/c'))  # False

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python的os包與os.path模塊怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI