Python os模塊 常用的功能介紹

2021-02-20 小強測試系列

Python os 模塊提供了非常豐富的方法用來處理文件和目錄。使用者不需要關注什麼作業系統就可以對文件進行操作。 

下面介紹一些常用的模塊和功能:

1、獲取與切換當前活動目錄

os.getcwd()—— 獲取當前活動目錄,當前路徑

os.chdir(path)——活動目錄切換到指定的path

>>> os.chdir('C://') # 活動目錄切換到C:/
>>> os.getcwd() # 獲取當前活動目錄
'C:\\'

>>> os.chdir('C:\\Software\\Python35') # 切換回活動目錄

'C:\\Software\\Python35'


2、當前路徑或路徑下的文件

os.getcwd()——查看當前所在路徑

os.listdir(path)——列舉目錄下的所有文件與目錄,返回列表。

os.walk(path)——列舉目錄下的所有文件與目錄(包含子文件夾),返回文件對象。

>>> import os

>>> os.getcwd() # 獲取當前目錄路徑

'C:\\Software\\Python35'

>>> os.listdir('.') # 返回當前目錄下目錄與文件

['text','Doc','Lib','Libs',..]

>>> os.lisdir('C:\Users\Software\\Python35\Doc')

['Python.doc',.]

>>>for root,dirs,files in os.walk('.'):

    print(root) # 返回當前路徑,str類型

     print(dirs) # 返回當前路徑下所有的子文件,list類型

    print(files) # 返回當前路徑下所有非目錄文件

 

3、目錄的增刪改

os.mkdir(path)—— 創建目錄(只能創建一層)

os.makedirs(path)——遞歸創建目錄

os.rename(src,dst)——重命名文件或目錄,src是原來的名字,dst修改後名字

os.rmdir(path)——刪除指定path空目錄,目錄非空則拋出OSError異常。

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

>>> os.chdir('C://') # 活動目錄切換到C:/盤下
>>> os.getcwd() # 獲取當前活動目錄
'C:\\'
>>> os.mkdir('test') # 在當前活動目錄創建test目錄
>>> os.path.exists('test') # 確認test目錄創建成功
True
>>> os.rename('test','test001') # test重命名為test001
>>> 'test' in os.listdir('.') # 確認文件或目錄是否存在
False
>>> 'test001' in os.listdir('.')
True
>>> os.rmdir('test001') # 刪除test001目錄
>>> 'test001' in os.listdir('.')
False

4、文件的增刪改

os.remove(path)——刪除指定文件

os.rename(src,dst)——重命名文件或目錄,src是原來的名字,dst修改後名字

文件新增在打開寫入模式時創建格式:

os.open('文件名',os.O_CREAT)或open('文件名','w')

>>> fo=os.open("test.txt", os.O_CREAT) # 創建並打開文件
>>> 'test.txt' in os.listdir('.') # 判斷文件是否存在
True
>>> os.close(fo) # 關閉打開文件
>>> os.rename('test.txt','test001.txt') # 重命名文件
>>> 'test.txt' in os.listdir('.')
False
>>> 'test001.txt' in os.listdir('.')
True
>>> os.remove('test001.txt') # 刪除文件
>>> 'test001.txt' in os.listdir('.')
False

5、相對路徑轉換為絕對路徑

os.path.abspath(path)——返回path的絕對路徑

os.path.isabs(path)——判斷是否為絕對路徑

>>> os.path.abspath('.') # . 表示當前目錄
'C:\\Software\\Python35'
>>> os.path.abspath('..') # .. 表示上級目錄
'C:\\Software'
>>> os.path.isabs('C:\\Software\\Python35') # 路徑是否為絕對路徑

True

6、獲取路徑中的文件名與文件目錄部分

os.path.basename(path)—— 去掉目錄路徑獲取文件名

os.path.dirname(path)—— 去掉文件名獲取目錄

>>> path = 'C:\\Software\\Python35\\python.exe'
>>> os.path.basename(path)
'python.exe'
>>> os.path.dirname(path)
'C:\\Software\\Python35'

7、判斷路徑是文件還是文件夾

os.path.isdir(path) ——是否是目錄

os.path.isfile(path) ——是否是文件

當文件或目錄下不存在時返回Flase

>>> os.path.isfile('C:\\Software\\Python35\\python.exe') # 是否為文件
True
>>> os.path.isfile('C:\\Software\\Python35')
False
>>> os.path.isfile('.\\python.exe') # 可以使用相對路徑
True
>>> os.path.isdir('C:\\Software\\Python35')
True
>>> os.path.isdir('python.exe')
False
>>> os.path.isdir('.')
True

8、查看文件或目前是否存在

os.path.exists(path) —— 文件或目錄是否存在,返回True或Flase

>>> os.path.exists('lib')
True
>>> os.path.exists('.\\python125.exe')
False

9、查看文件時間和文件大小

os.path.getmtime(path) ——文件或文件夾最後修改時間,返回時間戳

os.path.getatime(path) ——文件或文件夾最後訪問時間,返回時間戳

os.path.getctime(path) ——文件或文件夾創建時間,返回時間戳

os.path.getsize(path) ——文件或文件夾大小,若是文件夾返回0

10、路徑合成與拆分

os.path.split(path) ——將路徑分解為(文件夾,文件名)的元組

os.path.join(path1,path2,) ——將path進行組合,若其中有絕對路徑,則之前的path將被刪除

>>> path='C:\\Software\\Python35\\python.exe'
>>> os.path.split(path) # 拆分路徑
('C:\\Software\\Python35', 'python.exe')
>>> os.path.split('C:\\Software\\Python35') # 注意下一行的區別
('C:\\Software', 'Python35')
>>> os.path.split('C:\\Software\\Python35\\')
('C:\\Software\\Python35', '')
>>> os.path.join('C:\\Software\\Python35', 'python.exe')
'C:\\Software\\Python35\\python.exe'
>>> os.path.join('C:\\Software\\Python35\\a\b', 'C:\\Software\\Python35\\c')

'C:\\Software\\Python35\\c'

>>> os.path.split(os.path.split(os.path.realpath(__file__))[0])[0] # 返回當前目錄的絕對路徑

練習:

創建一個函數,獲取文件夾下包含子文件夾的所有文件路徑,並且存入list輸出?

import os

path = os.getcwd()

# 使用os.walk(path)獲取文件屬性

def list_file_walk(path):

file_list = []
for root, dirs, files in os.walk(path):
for file in files:
file_path = os.path.join(root, file)
file_list.append(file_path)
return file_list

''' 遞歸函數獲取文件'''

def list_file_recursive(path,list_name):

filelist = os.listdir(path)
for file in filelist:
file_path = os.path.join(path, file)
if os.path.isdir(file_path):
list_file_recursive(file_path,list_name)
else:
list_name.append(file_path)
return list_name

print(len(list_file_walk(path)))
print(len(list_file_recursive(path,[])))

相關焦點

  • Python os 模塊
    問題的答案就是python有os 模塊啊!這個os模塊能夠讓你像在Linux命令行中操作文件一樣,在python中也實現同樣的功能,感覺它就是python天生用來替換BASH的,而且它能夠呈現出一種更簡潔友好的腳本體驗!第一步;載入os模塊要想使用os模塊的功能,第一步該怎麼做呢?
  • Python常用模塊os和shutil學習
    os就是「operating system」的縮寫,python中的os模塊提供了對目錄或者文件的新建/刪除/查看等屬性,還提供了對文件以及目錄的路徑操作,比如創建、刪除目錄等。關於OS模塊的目錄操作,可以看一下這篇文章:Python目錄操作總結下面是os模塊常用方法思維導圖shutil模塊shutil模塊屬於高級文件操作模塊,可以做os模塊的補充,主要可以實現文件的複製和解壓縮操作等等。
  • Python OS模塊簡介
    Python允許開發人員通過Python中的os模塊使用多個依賴於作業系統的功能。這個包抽象了平臺的功能,並提供了相關python函數來導航、創建、刪除和修改文件和文件夾。在本教程中,你將了解如何導入這個包、它的基本功能以及使用這個庫執行數據合併任務的python示例項目。基本函數我們通過一些實例代碼來學習一下這個模塊。
  • Python內置模塊os介紹
    # 內置模塊# Python語言強大的地方就在於它擁有非常強大的模塊系統# 使用只需要用 import 導入即可
  • python:os.path模塊(常用路徑操作)
    只要你擼代碼就會使用到路徑操作,大部分都是讀取配置文件使用的比較多,下面簡介了一些常用的方法,僅供參考.os.path.abspath(path)import os.path as spprint(sp.abspath(__file__))/Users/lifeng/python-projects/Test/pythonScripts/pythonLibrary/
  • Python內置模塊之OS
    今天分享下python內置模塊中的OS模塊,os模塊是大家經常會使用到的,雖然有path這個模塊替代os, 但是大家可能還是比較熟悉os吧,那麼我自己也總結下os模塊中常用的一些方法和屬性。以下簡單列幾個常用的屬性:os.name說明:返回的是當前作業系統的名稱.import os>>> os.name# windows返回結果:nt# linux返回結果'posix'os.environ說明:獲取當前系統的環境變量.
  • Python之OS模塊39個常用函數詳解
    OS,語義作業系統,所以該模塊就是作業系統相關的功能了,用於處理文件和目錄這些我們日常手動需要做的操作,比如新建文件夾、獲取文件列表、刪除某個文件、獲取文件大小、重命名文件、獲取文件修改時間等,該模塊就包含了大量的作業系統操作函數,精選常用的進行解析,希望對大家有所幫助。
  • 【Python入門】Python之OS模塊39個常用函數詳解
    os,語義作業系統,所以該模塊就是作業系統相關的功能了,用於處理文件和目錄這些我們日常手動需要做的操作,比如新建文件夾、獲取文件列表、刪除某個文件、獲取文件大小、重命名文件、獲取文件修改時間等,該模塊就包含了大量的作業系統操作函數,精選常用的進行解析,希望對大家有所幫助。
  • python的模塊module介紹
    概要:模塊是一塊積木,是最基本的功能單位一切都是以模塊的形式存在的再來理解if __name__ == '__main__'模塊的搜索路徑sys.path和PYTHONPATH安何安裝模塊(以numpy為例,重點講離線、非管理員權限安裝)從源碼開始安裝Tk庫模塊是一塊積木在python
  • 【連載電子書六】Python常用模塊
    import  模塊2. from 模塊 import 功能本節我們主要是學習和了解一些python的內置模塊的使用1. randompython中專門用來產生隨機數的一個模塊import random# 隨機數(0-1)a = random.random()
  • 二十七、深入淺出Python中的os模塊
    「@Author:Runsen」當初學Python的時候,把一些標準庫和第三方開源庫學的七零八落,不成系統,正好趁這個機會來系統的整理一下,先從Python常用的標準庫os開始吧。osOS模塊簡單的來說它是一個Python的系統編程的操作模塊,可以處理文件和目錄這些我們日常手動需要做的 操作。可以查看OS模塊的幫助文檔。
  • 【python】os 模塊使用筆記
    Python內置的os模塊可以調用作業系統提供的接口函數,對文件或目錄進行操作(實際上作業系統是不允許應用程式直接訪問和操作文件和目錄的,讀寫文件就是請求作業系統打開一個文件對象,通常稱為文件描述符。註:如果是posix,作業系統是linux,Unix,Mac OS X.如果是nt,作業系統則是windows。
  • python 基礎 — 常用模塊
    python 的 tempstamp 是一個浮點數。\test>python test.py 1 2 3['test.py', '1', '2', '3']2、sys.path返回模塊的搜索路徑,從當前文件所在路徑開始搜索>>> sys.path['', 'D:\\Software\\python36.zip', 'D:\\Software\\DLLs', 'D
  • Python3_模塊(一)
    為此 Python提供了一個辦法,把這些定義存放在文件中,為一些腳本或者交互式的解釋器實例使用,這個文件被稱為模塊。模塊是一個包含所有你定義的函數和變量的文件,其後綴名是.py。模塊可以被別的程序引入,以使用該模塊中的函數等功能。這也是使用 python標準庫的方法。簡單的來說,模塊,是用一段代碼實現了某個功能的代碼集合,本質上是一個py文件。
  • Python辦公自動化:OS模塊的常見用法
    ('dirname')列出指定目錄的文件os.scandir()和listdir相近的功能,列出指定目錄的文件 Python 官方推薦os.getcwd()取得當前工作目錄os.chmod()改變目錄權限os.path.basename(『path/filename』)去掉目錄路徑,返回文件名os.path.dirname(『path/filename』)去掉文件名,返回目錄路徑os.path.join
  • Python logging日誌模塊 常用的功能介紹
    logging是python自帶的一個日誌模塊2、logging作用是什麼?3、logging默認日誌級別: NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL;測試使用INFO、ERROR即可。
  • python基礎模塊三劍客:sys、os、shutil
    前面,我們學習了python模塊的基本概念、如何安裝第三方模塊,並學習了寫自己的模塊和包。
  • 盤點Python中os模塊的那些用法
    今天給大家分享Python基礎之os模塊。一、os模塊概述Python os模塊包含普遍的作業系統功能。二、os模塊的作用可以處理文件和目錄這些我們日常手動需要做的操作。如果你希望你的程序能夠與平臺無關的話,這個模塊是尤為重要的。三、常用方法1. os.name輸出字符串指示正在使用的平臺。如果是window 則用'nt'表示,對於Linux/Unix用戶,它是'posix'。
  • Python常用模塊資料
    os模塊  os模塊包裝了不同作業系統的通用接口,使用戶在不同作業系統下,可以使用相同的函數接口,返回相同結構的結果。  os.name:返回當前作業系統名稱('posix', 'nt', 'os2', 'mac', 'ce' or 'riscos')  os中定義了一組文件、路徑在不同作業系統中的表現形式參數,如    os.sep(文件夾分隔符,windows中是 / )    os.extsep(擴展名分隔符,windows中是 . )    os.pathsep(目錄分隔符
  • Python|模塊sys
    模塊是一個包含定義函數和變量的文件,其後綴名是.py。模塊可以被別的程序引入,以使用該模塊中的函數等功能。