OS模塊

OS模塊

OS模塊是Python標準庫中用於訪問操作系統功能的模塊。

使用OS模塊提供的接口,能夠實現跨平臺訪問。

最常見的操作:

  • 目錄的操作
  • 判斷

1.系統操作

  • os.sep:用於查看系統路徑的分隔符;

    • Window—>’\’

    • ubuntu—>’/’

  • os.name:顯示我們正在使用的平臺

    • Window---->‘nt’
    • Linux/Unix—>‘posix’
  • os.getenv()—>讀取環境變量(environment)

  • os.getcwd()—>獲取當前路徑

2.目錄操作—增刪改查(direction)

  • os.listdir():返回指定目錄下的所有文件和目錄名
import os
print(os.listdir())  # 未指定路徑,默認當前路徑
#['.idea', 'data', 'day01.py', 'day03.py', 'day04.py', 'day05.py', 'module_test.py', 'test.py', 'week01.py', '__pycache__']
dirs = "C:\\Users\\11980\Desktop\學習\python"
print(os.listdir(dirs))  # 指定路徑下
#['JetBrains PyCharm 2018.1 x64.lnk', 'pip-19.1.1', 'python學習筆記', 'python安裝', 'python安裝.zip', 'typora', 'xmind', '作業', '周總結', '學習工具.zip', '短學期']
  • 目錄的創建:

    • os.mkdir(path):創建目錄,但僅創建一級目錄;若文件已存在則報錯
    import os
    os.mkdir("os_test")
    
    • os.makedirs(path):創建目錄,創建多級目錄;若文件已存在則報錯
    import os
    os.makedirs("main_file\sub_file")
    
  • 目錄/文件刪除

    • os.rmdir(path):刪除空目錄(一級),若不爲空則報錯
    • os.removedirs(path):刪除空目錄(多級),若根目錄下存在文件,則僅刪除子目錄
    • os.remove(path):刪除文件,必須是文件,不能刪除目錄
import os
os.rmdir('os_test')
os.removedirs('main_file\sub_file')
os.removedirs('data\李躍2.txt')
  • 更改目錄

    • os.chdir(path):change direction # 將當前工作目錄更改到指定的工作目錄。
    • os.rename(old_name, new_name):
    import os
    os.chdir('..')
    os.listdir()
    #['dxq', 'test', 'test1']
    os.chdir('./test1/data')
    os.rename('李躍.txt', 'liyue.txt')
    

3.判斷文件

  • os.path.exists(path):判斷文件或者目錄是否存在。存在,返回True;否則返回False
import os
print(os.path.exists('day01.py'))
#True
print(os.path.exists('day01.txt'))
#False
print(os.path.exists('data'))
#True
  • os.path.isfile(path):判斷是否爲文件。是,返回True;否,返回False
import os
print(os.path.isfile('data'))
#False
print(os.path.isfile('day01.py'))
#True
  • os.path.isdir(path):判斷是否爲目錄。是,返回True;否,返回False
import os
print(os.path.isdir('data'))
#True
print(os.path.isdir('day01.py'))
#False

4.拓展:

  • os.path.dirname(path):返回文件路徑
  • os.path.basename(path):去除路徑返回文件名
  • os.path.getsize(path):返回文件大小
  • os.path.abspath(path):返回絕對路徑
  • os.path.join(path, name):路徑的連接
  • os.path.split(path):將path的目錄和文件名稱分割開,並返回元組
  • 查看文件時間:
    • os.path.getmtime(path):返回文件或者目錄的最後修改時間,結果爲秒數—>modify
    • os.path.getatime(path):返回文件或者目錄的最後訪問時間,結果爲秒數
    • os.path.getctime(path):返回文件或者目錄的創建時間,結果爲秒數
  • 獲取文件和目錄
    • os.walk():文件目錄遍歷器
import os
print(os.path.dirname('D:\python\\test1\day01.py'))
#D:\python\test1
print(os.path.basename('D:\python\\test1\day01.py'))
#day01.py
print(os.path.getsize('day01.py'))
#7385
print(os.path.abspath('day01.py'))
#D:\python\test1\day01.py
print(os.path.join('D:\python\\test1', 'day01.py'))  #僅做拼接,不對文件是否存在做判斷
#D:\python\test1\day01.py
print(os.path.split('D:\python\\test1\day01.py'))
#('D:\\python\\test1', 'day01.py')
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getmtime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:29:35
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getatime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:22:46
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getctime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:22:46
for i in os.walk('./'):
    print(i)
#('./', ['.idea', 'data', 'main_file', 'os_test', '__pycache__'], ['day01.py', #'day03.py', 'day04.py', 'day05.py', 'module_test.py', 'test.py', 'week01.py'])
#('./.idea', ['inspectionProfiles'], ['encodings.xml', 'misc.xml', 'modules.xml', #'test1.iml', 'workspace.xml'])
#('./.idea\\inspectionProfiles', [], [])
#('./data', [], ['GreenFlowerPorcelain.txt', 'GreenFlowerPorcelain2.txt', #'liyue2.txt', 'test.txt', 'zucc.txt', '李躍2.txt', '青花瓷.txt'])
#('./main_file', ['sub_file'], [])
#('./main_file\\sub_file', [], [])
#('./os_test', [], [])
#('./__pycache__', [], ['module_test.cpython-36.pyc'])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章