最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 自動(dòng)化常用操作及glob使用大全

 更新時(shí)間:2021年08月26日 16:01:52   作者:Py_Silence  
這篇文章主要介紹了Python 自動(dòng)化常用操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文摘自微信公眾號(hào) GitPython:十個(gè) Python 自動(dòng)化常用操作。如有侵權(quán),聯(lián)系必刪。

1. OS模塊

導(dǎo)入:import os

1. 遍歷文件夾

批量操作的前提就是對(duì)文件夾進(jìn)行遍歷,os.walk遍歷文件夾后產(chǎn)生三個(gè)參數(shù):

  • 當(dāng)前文件夾路徑
  • 包含文件夾的名稱(列表形式)
  • 包含文件名稱(列表形式)

代碼如下(按需求更改目標(biāo)路徑即可):

for dirpath, dirnames, filenames in os.walk(r'C:\\Program Files (x86)'):
    print(f'打開(kāi)文件夾{dirpath}')  # 當(dāng)前文件夾路徑
    if dirnames:
        print(dirnames)  # 包含文件夾名稱(列表形式)
    if filenames:
        print(filenames)  # 包含文件名稱(列表形式)
    print('-' * 10)

# 輸出結(jié)果:
打開(kāi)文件夾C:\\Program Files (x86)
['360', 'BirdWallpaper', 'Common Files', 'erl5.9.3.1', 'InstallShield Installation Information', 'Intel', 'Internet Explorer', 'IQIYI Video', 'Java', 'Kingsoft', 'Microsoft Office', 'Microsoft.NET', 'MSBuild', 'NetSarang', 'NVIDIA Corporation', 'Reference Assemblies', 'Sangfor', 'Sinfor', 'SogouInput', 'svnfile', 'Tencent', 'UltraEdit', 'VMware', 'Windows Defender', 'Windows Mail', 'Windows Media Player', 'Windows Multimedia Platform', 'Windows NT', 'Windows Photo Viewer', 'Windows Portable Devices', 'Windows Sidebar', 'WindowsPowerShell', 'Youdao']
['desktop.ini', '微軟常用運(yùn)行庫(kù)合集_2019.07.20_X64.exe']
----------
打開(kāi)文件夾C:\\Program Files (x86)\360
['360bizhi', '360Safe', '360SD']

2. 目標(biāo)路徑是否是文件

給定一個(gè)目標(biāo)路徑path,通過(guò)一行代碼判斷該路徑是文件夾還是文件夾路徑,使用os.path.isfile(path),返回TrueFalse。

path = r'C:\Users\Administrator\Desktop\doc\note.md'
print(os.path.isfile(path))  # True
path = 'xxx'
print(os.path.isfile(path))  # False

3. 獲取路徑中的文件名

os模塊方式os.path.basename可以直接從絕對(duì)路徑中獲取最后的文件名

path = r'C:\Users\Administrator\Desktop\doc\note.md'
print(os.path.basename(path))
print(path.split('\\')[-1])
# note.md

切割字符串方式path.split('\\')[-1]

path = r'C:\Users\Administrator\Desktop\doc\note.md'
print(path.split('\\')[-1])
# note.md

4. 創(chuàng)建文件夾

創(chuàng)建文件夾的代碼非常常用,因?yàn)橥傻男挛募枷M袀€(gè)新的文件夾存儲(chǔ)。

dirpath = 'xxx'
os.mkdir(dirpath)
# 這樣會(huì)在該`py`文件同一目錄下生成名為`xxx`的文件夾

但如果存在同名文件夾會(huì)報(bào)錯(cuò)FileExistsError: [WinError 183] 當(dāng)文件已存在時(shí),無(wú)法創(chuàng)建該文件。: 'xxx',為了避免報(bào)錯(cuò)可在創(chuàng)建前先判斷是否存在:

dirpath = 'xxx'
if not os.path.exists(dirpath):
    os.mkdir(dirpath)

5. 獲取桌面路徑

  • 獲取桌面路徑非常常用,可使用os.path.join(os.path.expanduser("~"), 'Desktop')獲取桌面的絕對(duì)路徑
  • 好處:把數(shù)據(jù)放到桌面上,在不同的電腦上都能調(diào)用代碼對(duì)數(shù)據(jù)進(jìn)行處理。
  • 如果是在一臺(tái)電腦上把桌面路徑固定在字符串中,則換一臺(tái)電腦就必須修改桌面路徑
desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')
print(desktop_path)
# C:\Users\Administrator\Desktop

封裝成一個(gè)函數(shù)進(jìn)行調(diào)用

def get_desktop_path():
    return os.path.join(os.path.expanduser("~"), 'Desktop')

6. 重命名文件/文件夾 使用os.rename()方法

os.rename('xxx', 'xxx2')  # 重命名文件夾
os.rename('test.txt', 'test2.txt')  # 重命名文件

7. 批處理文件 - 1

除了os.walk外,在非遍歷各級(jí)文件夾時(shí),還可用os.scandir()獲取指定路徑的全部或符合條件的文件,使用for循環(huán),獲取循環(huán)變量的namepath

path = '.'
for file in os.scandir(path):
    print(file.name, file.path)

# 輸出結(jié)果:
aaa .\aaa
os模塊.py .\os模塊.py
test2.txt .\test2.txt
xxx2 .\xxx2
# 如果path是絕對(duì)路徑,下邊打印出來(lái)的也是絕對(duì)路徑

8. 批處理文件 - 2

獲取指定路徑的全部或符合條件的文件第二種方法使用os.listdir()獲取文件名:

path = r'F:\python\python-basic\tips\自動(dòng)化常用操作'
for file in os.listdir(path):
    print(file)

# 輸出結(jié)果:
aaa
os模塊.py
test2.txt
xxx2

2. shutil模塊

9. 移動(dòng)文件/文件夾(并重命名) shutil常用于 移動(dòng)文件/文件夾,使用shutil.move()方法:

import shutil

# 把當(dāng)前目錄下的shutil_test.txt文件移動(dòng)到當(dāng)前目錄的bbb文件夾下
shutil.move(r'.\shutil_test.txt', r'.\bbb/')

# 把當(dāng)前目錄下的shutil_test2.txt文件移動(dòng)到當(dāng)前目錄bbb文件夾下,并重命名為shutil_test22.txt
shutil.move(r'.\shutil_test2.txt', r'.\bbb/shutil_test22.txt')

3. globa模塊

10. 批處理文件 - 3

  • golb模塊最重要的功能是搜索獲取同一級(jí)或各子級(jí)下符合條件的文件(絕對(duì)路徑),非常適合寫批處理的代碼。
  • 對(duì)大量文件進(jìn)行相同操作,在寫完針對(duì)一份文件的操作后,只需加上幾行代碼就可以完成批處理全部文件的工作
  • 參數(shù)*表示任意字符長(zhǎng)度;**/*表示用通配符指代給定路徑下的任何一層;recursiveTrue表示允許遍歷搜索,默認(rèn)為False
import glob

for file in glob.glob('**/*', recursive=True):
    print(file)

# 輸出結(jié)果:
aaa
bbb
glob模塊.py
os模塊.py
shutil模塊.py
test2.txt
xxx2
bbb\shutil_test.txt
bbb\shutil_test22.txt

glob可獲取指定路徑下文件的絕對(duì)路徑,也可接受 通配符 搜索,拓寬了靈活程度。

glob的幾種用法

  • glob 最重要的功能是 搜索獲取同一級(jí)或各子級(jí)下符合條件的文件(絕對(duì)路徑)
  • 導(dǎo)入:import glob
  • demo1:獲取當(dāng)前目錄下所有文件和文件夾及其文件
for file in glob.glob('**/*', recursive=True):
    print(file)

# 輸出結(jié)果:
aaa
bbb
glob模塊.py
os模塊.py
shutil模塊.py
test2.txt
xxx2
bbb\shutil_test.txt
bbb\shutil_test22.txt
bbb\w
bbb\w\aaaa.txt
bbb\w\s
bbb\w\s\i.txt

demo2:獲取當(dāng)前目錄bbb下的文件及其一層子文件

for file in glob.glob('./bbb/*'):
    print(file)

# 輸出結(jié)果:
./bbb\shutil_test.txt
./bbb\shutil_test22.txt
./bbb\w

demo3:獲取當(dāng)前目錄bbb下所有文件和文件夾及其文件

for file in glob.glob('./bbb/**', recursive=True):
    print(file)

# 輸出結(jié)果:
./bbb\
./bbb\shutil_test.txt
./bbb\shutil_test22.txt
./bbb\w
./bbb\w\aaaa.txt
./bbb\w\s
./bbb\w\s\i.txt

demo4:獲取當(dāng)前目錄bbb下嵌套兩層內(nèi)的文件和文件夾

for file in glob.glob('./bbb' + '/*/*'):
    print(file)

# 輸出結(jié)果:
./bbb\w\aaaa.txt
./bbb\w\s

demo5:遍歷包含指定名稱的文件和文件夾

import os

arm_path = glob.glob(os.path.join('./bbb', '*.txt'))
print(arm_path)
# 輸出結(jié)果:
['./bbb\\shutil_test.txt', './bbb\\shutil_test22.txt']

到此這篇關(guān)于Python 自動(dòng)化常用操作的文章就介紹到這了,更多相關(guān)Python 自動(dòng)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyTorch中的train()、eval()和no_grad()的使用

    PyTorch中的train()、eval()和no_grad()的使用

    本文主要介紹了PyTorch中的train()、eval()和no_grad()的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python基于pip實(shí)現(xiàn)離線打包過(guò)程詳解

    Python基于pip實(shí)現(xiàn)離線打包過(guò)程詳解

    這篇文章主要介紹了Python基于pip實(shí)現(xiàn)離線打包過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python深度學(xué)習(xí)實(shí)戰(zhàn)PyQt5安裝與環(huán)境配置過(guò)程詳解

    Python深度學(xué)習(xí)實(shí)戰(zhàn)PyQt5安裝與環(huán)境配置過(guò)程詳解

    本系列面向 Python 小白,從零開(kāi)始實(shí)戰(zhàn)解說(shuō)應(yīng)用 QtDesigner 進(jìn)行 PyQt5 的項(xiàng)目實(shí)戰(zhàn)。什么叫從零開(kāi)始?從軟件安裝、環(huán)境配置開(kāi)始。不跳過(guò)一個(gè)細(xì)節(jié),不漏掉一行代碼,不省略一個(gè)例圖
    2021-10-10
  • yolov5特征圖可視化的使用步驟

    yolov5特征圖可視化的使用步驟

    這篇文章主要介紹了yolov5特征圖可視化,本文通過(guò)實(shí)例代碼給大家介紹yolov5特征圖可視化使用方法,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Python批量將Word文檔(.doc)轉(zhuǎn)換為.docx格式的完整實(shí)現(xiàn)步驟

    Python批量將Word文檔(.doc)轉(zhuǎn)換為.docx格式的完整實(shí)現(xiàn)步驟

    這篇文章主要介紹了Python批量將Word文檔(.doc)轉(zhuǎn)換為.docx格式的完整實(shí)現(xiàn)步驟,文中通過(guò)代碼介紹的非常詳細(xì),適用于Windows系統(tǒng),解決了手動(dòng)轉(zhuǎn)換的低效率和出錯(cuò)率問(wèn)題,需要的朋友可以參考下
    2024-12-12
  • python super()函數(shù)的基本使用

    python super()函數(shù)的基本使用

    這篇文章主要介紹了python super()函數(shù)的基本使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • 簡(jiǎn)單了解Python3里的一些新特性

    簡(jiǎn)單了解Python3里的一些新特性

    這篇文章主要介紹了簡(jiǎn)單了解Python3里的一些新特性,給大家總結(jié)一下Python3一些新的更方便的特性!希望你們看完后也能高效率的編寫代碼,需要的朋友可以參考下
    2019-07-07
  • 升級(jí)python導(dǎo)致Yum崩潰的解決辦法

    升級(jí)python導(dǎo)致Yum崩潰的解決辦法

    這篇文章主要介紹了升級(jí)python導(dǎo)致Yum崩潰的三種解決辦法,文中通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-11-11
  • Python?pycryptodome庫(kù)實(shí)現(xiàn)RSA加密解密消息

    Python?pycryptodome庫(kù)實(shí)現(xiàn)RSA加密解密消息

    本文為大家介紹了如何在?Python?中使用?RSA?公鑰加密技術(shù)來(lái)加密和解密消息,并使用?pycryptodome?庫(kù)進(jìn)行實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2024-02-02
  • Python模板的使用詳細(xì)講解

    Python模板的使用詳細(xì)講解

    Django 模板是使用 Django 模板語(yǔ)言標(biāo)記的一個(gè)文本文檔或Python字符串。模板引擎可以識(shí)別和解釋一些構(gòu)造。主要是變量和標(biāo)簽。模板是通過(guò)上下文來(lái)渲染的。渲染用變量的值替換變量,變量的值在上下文中查找,并執(zhí)行標(biāo)簽。其他的一切都按原樣輸出
    2022-10-10

最新評(píng)論

阿尔山市| 图木舒克市| 花莲县| 平邑县| 板桥市| 望奎县| 福海县| 台安县| 上虞市| 乌拉特前旗| 白山市| 长顺县| 青冈县| 兰西县| 柘城县| 临海市| 静乐县| 嘉峪关市| 广州市| 石门县| 佛学| 邵阳县| 宁蒗| 高淳县| 雷波县| 双柏县| 庆阳市| 阿城市| 临沧市| 高淳县| 桐庐县| 社旗县| 屯门区| 娱乐| 阿坝县| 米泉市| 大渡口区| 大港区| 农安县| 衢州市| 盐津县|