os模塊

os模塊

與操做系統交互的模塊python

路徑相關的值都應該用常量 : 快捷鍵 Ctrl+shift+ugit

一、查看當前文件的上級目錄的絕對路徑shell

import os
# 查看當前文件的上級目錄的絕對路徑
DAY_15 = os.path.dirname(__file__)
print(DAY_15) # E:/Python/day15
# 查看當前文件的上級目錄的上級目錄絕對路徑
BASE_PATh = os.path.dirname(DAY_15)
print(BASE_PATh) # E:/Python

二、將文件拼接到絕對路徑中bash

# 將文件進行拼接到絕對路徑中
TEXT_PATH = os.path.join(DAY_15,'text.txt','a.py')
print(TEXT_PATH) # E:/Python/day15\text.txt\a.py

三、判斷文件或文件夾是否存在,若存在返回值是True,不存在返回值是Falsedom

# 判斷文件或文件夾是否存在,存在返回值是True,不存在的返回值是False
print(os.path.exists(TEXT_PATH)) # False
print(os.path.exists(DAY_15)) # True
# 只能判斷當前文件同級目錄下的文件是否存在
print(os.path.exists('datatime模塊.py')) # True
print(os.path.exists('內置函數.py')) # False

四、判斷「文件夾」是否存在,只能判斷文件夾,不能判斷文件是否存在ide

#判斷文件夾是否存在
print(os.path.isdir('os模塊.py')) # False
print(os.path.isdir(DAY_15)) # True

五、判斷文件是否存在函數

os.path.isfile()

六、建立文件夾測試

先拼接文件夾到絕對路徑中,而後再用os.mkdir()將拼接的文件夾建立新的文件夾,若存在,會報錯沒法建立idea

# 建立文件夾
FILE_PATH = os.path.join(DAY_15, '測試文件夾')
os.mkdir(FILE_PATH)

七、刪除空文件夾spa

刪除絕對路徑中最後一個文件夾,用os.rmdir()

#刪除空文件夾
FILE_PATH = os.path.join(DAY_15, '測試文件夾')
os.rmdir(FILE_PATH)
os.rmdir('E:\Python\day15\ces')

八、獲取某個文件夾中的全部文件的名字,以列表返回

# 獲取文件夾下的全部文件,以列表返回
PATH_LIST = os.listdir(os.path.dirname(__file__))
print(PATH_LIST) # ['.idea', 'datatime模塊.py', 'os模塊.py', 'random模塊.py', 'time模塊.py']

九、enumerate(可迭代對象) ——>獲得一個對象,對象中是將原來可對象中的每個值變成了一個個元組(索引,元素),如果字典返回的是字典裏全部的key對應序號

res = enumerate(PATH_LIST)
print(list(res))
>>>
[(0, '.idea'), (1, 'datatime模塊.py'), (2, 'os模塊.py'), (3, 'random模塊.py'), (4, 'time模塊.py')]

例題 :讓用戶選擇文件

while True:
    # 拿到文件夾下全部文件
    PATH_LIST = os.listdir(os.path.dirname(__file__))
    res = enumerate(PATH_LIST)
    # 打印全部的文件,並對應編號
    for index, name in res:
        print(f"編號:{index}, 文件名:{name}")
    choise = input('請輸入編號:')
    # 利用反向思惟,不用重複一層套一層if,判斷是否輸入的是數字
    if not choise.isdigit():
        print("輸入的不是數字!")
        continue
    # 判斷是否輸入的是在編號範圍內
    choise = int(choise)
    if choise not in range(len(PATH_LIST)):
        print("輸入的編號不在範圍內!")
        continue
    choise_file = PATH_LIST[choise]
    # 將選擇的文件拼接到文件中
    get_file = os.path.join(os.path.dirname(__file__),choise_file)
    # 打開文件並讀出文件內容
    with open(get_file,'r',encoding='utf-8') as f:
        print(f.read())
        break

os模塊其餘用法

方法 詳解
os.getcwd() 獲取當前工做目錄,即當前python腳本工做的目錄路徑
os.chdir("dirname") 改變當前腳本工做目錄;至關於shell下cd
os.curdir 返回當前目錄: ('.')
os.pardir 獲取當前目錄的父目錄字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄
os.removedirs('dirname1') 若目錄爲空,則刪除,並遞歸到上一級目錄,如若也爲空,則刪除,依此類推
os.mkdir('dirname') 生成單級目錄;至關於shell中mkdir dirname
os.rmdir('dirname') 刪除單級空目錄,若目錄不爲空則沒法刪除,報錯;至關於shell中rmdir dirname
os.listdir('dirname') 列出指定目錄下的全部文件和子目錄,包括隱藏文件,並以列表方式打印
os.remove() 刪除一個文件
os.rename("oldname","newname") 重命名文件/目錄
os.stat('path/filename') 獲取文件/目錄信息
os.sep 輸出操做系統特定的路徑分隔符,win下爲"",Linux下爲"/"
os.linesep 輸出當前平臺使用的行終止符,win下爲"\t\n",Linux下爲"\n"
os.pathsep 輸出用於分割文件路徑的字符串 win下爲;,Linux下爲:
os.name 輸出字符串指示當前使用平臺。win->'nt'; Linux->'posix'
os.system("bash command") 運行shell命令,直接顯示
os.environ 獲取系統環境變量
os.path.abspath(path) 返回path規範化的絕對路徑
os.path.split(path) 將path分割成目錄和文件名二元組返回
os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素
os.path.basename(path) 返回path最後的文件名。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素
os.path.exists(path) 若是path存在,返回True;若是path不存在,返回False
os.path.isabs(path) 若是path是絕對路徑,返回True
os.path.isfile(path) 若是path是一個存在的文件,返回True。不然返回False
os.path.isdir(path) 若是path是一個存在的目錄,則返回True。不然返回False
os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑以前的參數將被忽略
os.path.getatime(path) 返回path所指向的文件或者目錄的最後存取時間
os.path.getmtime(path) 返回path所指向的文件或者目錄的最後修改時間
相關文章
相關標籤/搜索