一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python os模塊和fnmatch模塊的使用介紹

python os模塊和fnmatch模塊的使用介紹

2021-09-18 00:18bainianminguo Python

這篇文章主要介紹了python os模塊和fnmatch模塊的使用介紹,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下

一、先介紹一下os模塊

?
1
2
3
4
5
6
7
8
9
10
import os
 
print(os.getcwd())
# E:\python\test\python_models
# 獲取當前的目錄
 
 
print(os.listdir("."))
# ['oop.py', 'python_argparse.py', 'python_click.py', 'python_os.py', 'python_re.py', 'python_requests.py', 'xx.py', '__init__.py']
# 列出指定目錄下的所有文件和文件夾,返回的是一個列表

1、拆分路徑的方法介紹

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 1、拆分路徑的方法介紹
# os.path模塊用來對文件和路徑進程管理,顯示他包含很多拆分路徑的函數,os.path模塊中和拆分路徑相關的函數有
 
# os.path.split()  返回一個二元組,包含文件的路徑和文件名
# os.path.dirname()  返回文件的路徑
# os.path.basename()   返回文件的文件名
# os.path.splitext()     返回一個不包括文件擴展名的部分和文件擴展名的二元組
 
# 下面演示一下上面介紹的方法
path = "G:\新建文件夾\瘋狂\永久地址.txt"
 
print(os.path.split(path))
# ('G:\\新建文件夾\\瘋狂', '永久地址.txt')
 
print(os.path.dirname(path))
# G:\新建文件夾\瘋狂
 
print(os.path.basename(path))
 
print(os.path.splitext(path))
# ('G:\\新建文件夾\\瘋狂\\永久地址', '.txt')

2、構建文件路徑的方法介紹

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 2、構建路徑的方法介紹
# python工程師可以使用os.path模塊方便的拆分路徑,相應的,os.path模塊的也包含了用以構建路徑的函數,其中最常用的是
 
# os.path.expanduser()    展開用戶的HOME目錄,比如~,~username
# os.path.abspath()         得到文件或路徑的絕對路徑
# os.path.join()              根據不同的操作系統平臺,使用不用的路徑分隔符拼接路徑
 
# 下面演示一下上面介紹的方法
# os.path.expanduser("~mysql") 返回mysql用戶的HOME目錄,我這里是windows平臺,就不演示這個命令了
 
 
print(os.path.abspath("."))
# E:\python\test\python_models
 
print(os.path.abspath(".."))
# E:\python\test
 
# 相應的有一個方法可以判斷一個路徑是否為絕對路徑
print(os.path.isabs("."))
# False
print(os.path.isabs(os.path.abspath(".")))
# True
 
 
print(os.path.join(os.path.abspath("."),"test","join.text"))
# E:\python\test\python_models\test\join.text
 
# 在python代碼中,可使用__file__這個特殊的變量表示當前代碼所在的源文件,在編寫代碼時,有時候需要導入當前源文件父目錄下的軟件包,因此需要用到
# 這里的路徑函數獲取源文件的父目錄,如下所示
path = os.path.abspath(__file__)
print(path)
# E:\python\test\python_models\python_os.py
 
print(os.path.dirname(path))
# E:\python\test\python_models
 
print(os.path.pardir)
# ..
 
print(os.path.abspath(os.path.join(os.path.dirname(path),os.path.pardir)))
# E:\python\test

3、獲取文件屬性的方法介紹

?
1
2
3
4
5
6
# 3、獲取文件屬性
# os.path模塊也包含了若干函數用來獲取文件的屬性,包括文件的創建時間,修改時間,文件的大小,訪問時間
# os.path.getatime()        返回文件的訪問的時間
# os.path.getmtime()          返回文件的修改的時間
# os.path.getctime()          返回文件的創建時間
# os.path.getsize()           返回文件的大小

4、判斷文件的類型

?
1
2
3
4
5
6
7
8
# 4、判斷文件類型
# os.path模塊也提供了若干函數用來判斷路徑是否存愛,以及路徑所指的文件的類型,這些判斷類的函數一般以is開頭,并且返回一個Boolean型的結果
 
# os.path.exists()      參數path指向的路徑是否存在
# os.path.isfile()        參數path指向的路徑存在,且為文件
# os.path.isdir()           參數path指向的路徑存在,且為目錄
# os.path.islink()            參數path指向的路徑存在,且是一個連接
# os.path.ismount()            參數path指向的路徑存在,且是一個掛載點

5、文件和目錄操作

?
1
2
3
4
5
6
# 5、文件和目錄的操作
# os模塊保留文件和目錄的操作函數,包括創建目錄,刪除目錄,刪除文件,重命名文件等
# os.remove()      刪除path路徑所指向的文件
# os.rmdir()         刪除path路徑鎖指向的文件夾,該文件夾必須為空,否則會報失敗
# os.mkdir()         創建一個文件夾
# os.rename()        重命名一個文件或者文件夾

6、修改文件屬性和判斷文件屬性

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 6、修改文件權限和判斷文件權限
# os模塊也包含了修改文件權限,判斷文件權限的函數,即chmod和access,chmod用來修改文件的權限,access用來判斷文件是否具有相應的權限,在linux中,
# 權限分為讀,寫和執行,因此os模塊也提供了三個常量來表示讀,寫,執行,即R_OK,W_OK,X_OK
 
 
print(os.access(__file__,os.R_OK))
# True
 
print(os.access(__file__,os.W_OK))
# True
print(os.access(__file__,os.X_OK))
# True
 
os.chmod(__file__,os.W_OK)

7、遍歷目錄樹

?
1
2
3
4
5
6
7
8
9
10
11
12
# 7、os.walk遍歷目錄樹
# 前面的例子都是查找某一個目錄下的文件并通過模式匹配去選擇自己需要的文件類型,在實際工作中,更有可能遇到的是查找某個目錄及其子目錄下的所有的文件
# 。例如查找某個目錄及其子目錄下所有的圖片,查找某個目錄及其子目錄下最大的十個文件,對于這類的需求可以使用os模塊walk方法,walk方法遍歷某個目錄及其
# 子目錄,對于每一個目錄,walk返回一個三元組,dirpath,dirnames,filenames,其中dirpath保存的是當前的目錄,dirnames是當前目錄下的子目錄列表,filenames
# 是當前目錄下的文件列表
 
for a,b,c in os.walk(".."):
    print(a,b,c,"walk---------")
 
    # a為當前的目錄
    # b為當前目錄下目錄
    # c為當前目錄下的文件

二、fnmatch模塊介紹

?
1
2
3
# 8、查找文件
# 使用fnmatch來查找特定的文件,大部分情況下,使用字符串匹配查找特定的文件就能滿足需求,如果需要更加靈活的字符串匹配,可以使用標準庫中的fnmatch庫,這個庫
# 專門用來進行文件名匹配,支持使用通配符進行文件名的匹配

1、fnmatch支持的通配符如下

?
1
2
3
4
5
# fnmatch支持的通配符如下
# *           匹配任何數量的字符
# ?           匹配單個字符
# [sep]       匹配sep中的字符
# [!sep]      匹配除了sep以為的任何字符

2、fnmatch的常用方法介紹

?
1
2
3
4
5
# fnmatch常用的方法
# fnmatch.fnmatch()    判斷文件名是否符合特定的模式,區分大小寫
# fnmatch.fnmatchcase()  判斷文件名是否符合特定的模塊,不區分大小寫
# fnmatch.filter()       返回輸入列表中,符合特定模式的文件名列表
# fnmatch.translate()     將通配符匹配模式轉換成正則表達式

3、fnmatch.fnmatch方法介紹

?
1
2
3
4
5
6
7
8
9
10
for file in os.listdir("."):
    if fnmatch.fnmatch(file,"*.html"):
        print(file)
 
    elif fnmatch.fnmatch(file,"[a-z]??.py"):
        print(file,"hahah")
    elif fnmatch.fnmatch(file,"[!a-o]*"):
        print(file)
    else:
        pass

4、fnmatch.filter方法介紹

?
1
2
3
    
# filter方法和fnmatch一樣,只是filer需要傳遞一個文件的列表進行,返回一個符合匹配規則的列表
print(fnmatch.filter(os.listdir("."),"*py"))

以上就是python os模塊和fnmatch模塊的使用介紹的詳細內容,更多關于python os模塊和fnmatch模塊的資料請關注服務器之家其它相關文章!

原文鏈接:https://www.cnblogs.com/bainianminguo/p/10708306.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91手机在线| 亚洲网站在线观看 | 失禁尿丝袜vk | 新新电影理论中文字幕 | 日韩r | 久久青草免费91线频观看站街 | 高h全肉动漫在线观看免费 高h辣h双处全是肉军婚 | 青草草产国视频 | 99精品在线视频观看 | 涩涩屋在线播放 | 精品在线小视频 | 高h折磨调教古代 | 温柔校草高h | 无遮18禁在线永久免费观看挡 | 瘦老汉gay | 91制片厂 果冻传媒 天美传媒 | 亚洲热在线观看 | 亚洲大片在线观看 | 果冻传媒在线完整免费观 | 精品久久香蕉国产线看观看麻豆 | 非洲黑人xxxxxbbbbb | 男人的天堂久久爱 | 亚洲国产成人在线 | 高清国产精品久久久久 | 日韩一区二区三区免费 | 精品久久久久久久久久久久久久久 | 国产香蕉一区二区在线观看 | 国产福利微拍精品一区二区 | 91精品国产综合久久 | 日韩精品一区二区三区中文在线 | 5g影院天天5g爽天天看 | 免费人成在线观看视频播放 | 动漫美女3d被爆漫画 | 欧美精品一区二区三区免费 | 44444色视频在线观看 | 欧美日韩一区二区三区韩大 | 非洲黑女人性xxxx | 午夜久久精品 | 日本漫画被黄漫免费动 | 99ri国产在线 | 久久一本岛在免费线观看2020 |