App下載

Python之os模塊功能全解

猿友 2021-01-05 16:09:41 瀏覽數(shù) (4130)
反饋

前言

os模塊:是對(duì)操作系統(tǒng)的調(diào)用,模擬對(duì)操作系統(tǒng)的指令 

os 模塊提供了一種使用操作系統(tǒng)相關(guān)功能的便攜方式。如果您只想讀取或?qū)懭胛募?,使?open() 方法;如果要操作路徑,使用 os.path 模塊;如果要讀取命令行中所有文件中的所有行 ,使用 fileinput 模塊;有關(guān)創(chuàng)建臨時(shí)文件和目錄的信息,使用 tempfile 模塊;有關(guān)高級(jí)文件和目錄的處理,使用 shutil 模塊。

下面對(duì)經(jīng)常使用的功能進(jìn)行介紹;

全解

1. 獲取當(dāng)前路徑及路徑下的文件

os.getcwd():查看當(dāng)前所在路徑。
os.listdir(path): 列舉目錄下的所有文件。返回的是列表類型。

import os

cp = os.getcwd()  # 獲取當(dāng)前路徑, 返回絕對(duì)路徑

print(cp)  # C:\Users\Desktop\w3cschool\os

fileList = os.listdir(cp)  # 獲取路徑下的文件,以及文件夾

print(fileList)  # ['os_.py', 'sub', 'test.txt']

2. 獲取路徑的絕對(duì)路徑

os.path.abspath(path): 返回path的絕對(duì)路徑

abspath1 = os.path.abspath(".")  # 返回當(dāng)前路徑的絕對(duì)路徑

print(abspath1)  # C:\Users\Desktop\w3cschool\os

abspath2 = os.path.abspath("../")  # 返回上一層路徑的絕對(duì)路徑

print(abspath2)  # C:\Users\Desktop\w3cschool

3. 查看路徑的文件夾部分和文件名部分

os.path.split(path): 將路徑分解為(文件夾,文件名),返回的是元組類型??梢钥闯觯袈窂阶址詈笠粋€(gè)字符是,則只有文件夾部分有值;若路徑字符串中均無,則只有文件名部分有值。若路徑字符串有\(zhòng),且不在最后,則文件夾和文件名均有值。且返回的文件夾的結(jié)果不包含.

os.path.join(path1,path2,…): 將 path 進(jìn)行組合,若其中有絕對(duì)路徑,則之前的 path 將被刪除。

catalogue_and_file1 = os.path.split('D:\pythontest\ostest\Hello.py')

print(catalogue_and_file1)  # ('D:\\pythontest\\ostest', 'Hello.py')

catalogue_and_file2 = os.path.split('.')

print(catalogue_and_file2)  # ('', '.')

catalogue_and_file3 = os.path.split('D:\pythontest\ostest\\')

print(catalogue_and_file3)  # ('D:\\pythontest\\ostest', '')

path_join1 = os.path.join('D:\pythontest', 'ostest')

print(path_join1)  # D:\pythontest\ostest

path_join2 = os.path.join('D:\pythontest\ostest', 'hello.py')

print(path_join2)  # D:\pythontest\ostest\hello.py

path_join3 = os.path.join('D:\pythontest\\b', 'D:\pythontest\\a')

print(path_join3)  # D:\pythontest\a

os.path.dirname(path):返回path中的文件夾部分,結(jié)果不包含’’;
os.path.basename(path):返回path中的文件名。

4.os.path模塊詳解

#獲取

os.path.abspath()#獲取某一個(gè)文件的絕對(duì)路徑

os.path.getatime()#返回path所指的文件或目錄的最后的存取時(shí)間,時(shí)間戳

os.path.getmtime()#返回path所指的文件或目錄的最后的修改時(shí)間,時(shí)間戳

#以下三個(gè)可以不考慮路徑是否存在

os.path.split('C:\a\tes.txt')#返回一個(gè)元組,兩部分,一個(gè)目錄,一個(gè)文件名

os.path.dirname(r'C:\a\tex.txt')#獲取文件的絕對(duì)路徑

os.path.basename(r'C:\a\tes.txt')#獲取最后的值

#判斷是否存在

os.path.exists(r'C:')#判斷路徑是否存在

os.path.isabs(r'C:\a')#判斷是否一個(gè)絕對(duì)路徑

os.path.isfile(r'C:\a\tes.txt')#判斷是否一個(gè)文件

os.path.isdir()#是否是文件夾

#將多個(gè)部分組合成一個(gè)路徑

os.path.join(r'C:’,r‘\b',r'\a.txt')#將多個(gè)路徑組合返回

推薦好課:Python3 入門、Python3 進(jìn)階


0 人點(diǎn)贊