最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【Python】文件操作用pathlib比os更簡(jiǎn)潔

2023-08-31 05:21 作者:PiKaChu345  | 我要投稿

本視頻闡述的主要內(nèi)容是,當(dāng)我們使用python操作文件的時(shí)候,使用pathlib模塊比使用os模塊更簡(jiǎn)潔。

視頻用五種不同情景下的代碼做了一個(gè)對(duì)比。

文中出現(xiàn)的所有代碼:

  • 刪除目錄下所有文件(包含子文件):
from pathlib import Path

def delete_all_contents_in_directory(src_dir):
    # First, delete all files and symlinks
    for entry in Path(src_dir).rglob('*'):
        if entry.is_file() or entry.is_symlink():
            entry.unlink()

    # Then, delete all directories
    for entry in Path(src_dir).rglob('*'):
        if entry.is_dir():
            try:
                entry.rmdir()
            except OSError:
                pass

if __name__ == "__main__":
    source_directory = 'my_dir'
    delete_all_contents_in_directory(source_directory)
  • 刪除一個(gè)目錄當(dāng)中所有文件(不包含子目錄)
from pathlib import Path

def delete_top_level_contents(src_dir):
    for entry in Path(src_dir).iterdir():
        if entry.is_file() or entry.is_symlink():
            entry.unlink()

if __name__ == "__main__":
    source_directory = 'my_dir'
    delete_top_level_contents(source_directory)

os的版本

import os

def delete_top_level_contents(src_dir):
    for entry_name in os.listdir(src_dir):
        entry_path = os.path.join(src_dir, entry_name)
        if os.path.isfile(entry_path) or os.path.islink(entry_path):
            os.remove(entry_path)

if __name__ == "__main__":
    source_directory = 'my_dir'
    delete_top_level_contents(source_directory)


  • 刪除目錄下指定格式的文件(不包含子目錄)

os的版本

import os

def delete_specific_formats_with_os(src_dir, extensions):
    for entry_name in os.listdir(src_dir):
        entry_path = os.path.join(src_dir, entry_name)
        if os.path.isfile(entry_path) and os.path.splitext(entry_name)[1] in extensions:
            os.remove(entry_path)

if __name__ == "__main__":
    source_directory = 'my_dir'
    formats_to_delete = ['.txt', '.log']
    delete_specific_formats_with_os(source_directory, formats_to_delete)

pathlib的版本

from pathlib import Path

def delete_specific_formats_with_pathlib(src_dir, extensions):
    for entry in Path(src_dir).iterdir():
        if entry.is_file() and entry.suffix in extensions:
            entry.unlink()
if __name__ == "__main__":
    source_directory = 'my_dir'
    formats_to_delete = ['.txt', '.log']
    delete_specific_formats_with_pathlib(source_directory, formats_to_delete)
  • 刪除給定目錄下文件名當(dāng)中包含特定關(guān)鍵詞以及特定擴(kuò)展名的文件(不包含子文件)
import os

def delete_files_with_keywords_with_os(src_dir, extensions, keywords):
    for entry_name in os.listdir(src_dir):
        entry_path = os.path.join(src_dir, entry_name)
        if os.path.isfile(entry_path) and os.path.splitext(entry_name)[1] in extensions:
            if any(keyword in entry_name for keyword in keywords):
                os.remove(entry_path)

if __name__ == "__main__":
    source_directory = 'my_dir'
    formats_to_delete = ['.txt', '.log']
    keywords_to_search = ['report', 'draft']
    delete_files_with_keywords_with_os(source_directory, formats_to_delete, keywords_to_search)

pathlib版本

from pathlib import Path

def delete_files_with_keywords_with_pathlib(src_dir, extensions, keywords):
    for entry in Path(src_dir).iterdir():
        if entry.is_file() and entry.suffix in extensions:
            if any(keyword in entry.name for keyword in keywords):
                entry.unlink()

if __name__ == "__main__":
    source_directory = 'my_dir'
    formats_to_delete = ['.txt', '.log']
    keywords_to_search = ['report', 'draft']
    delete_files_with_keywords_with_pathlib(source_directory, formats_to_delete, keywords_to_search)


  • 刪除一個(gè)目錄中名字符合某種pattern的文件(不包含子目錄)


import os
import re

def delete_files_with_pattern_with_os(src_dir, pattern):
    for entry_name in os.listdir(src_dir):
        entry_path = os.path.join(src_dir, entry_name)
        if os.path.isfile(entry_path) and re.match(pattern, entry_name):
            os.remove(entry_path)

if __name__ == "__main__":
    source_directory = 'my_dir'
    pattern_to_search = r'^report_[0-9]{4}\.txt$'
    delete_files_with_pattern_with_os(source_directory, pattern_to_search)

pathlib的實(shí)現(xiàn)

from pathlib import Path
import re

def delete_files_with_pattern_with_pathlib(src_dir, pattern):
    for entry in Path(src_dir).iterdir():
        if entry.is_file() and re.match(pattern, entry.name):
            entry.unlink()

if __name__ == "__main__":
    source_directory = 'my_dir'
    pattern_to_search = r'^report_[0-9]{4}\.txt$'
    delete_files_with_pattern_with_pathlib(source_directory, pattern_to_search)



【Python】文件操作用pathlib比os更簡(jiǎn)潔的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
乐昌市| 金湖县| 边坝县| 石棉县| 东乌| 怀仁县| 呈贡县| 福安市| 松溪县| 稻城县| 贡嘎县| 广饶县| 贵德县| 永昌县| 彩票| 东乡族自治县| 临泉县| 凉山| 兴国县| 江川县| 阜城县| 治多县| 霍城县| 罗定市| 嘉定区| 连州市| 济源市| 嘉禾县| 阜南县| 富平县| 博乐市| 无棣县| 蒲城县| 兴和县| 兴隆县| 京山县| 安丘市| 建水县| 无为县| 图们市| 汾西县|