五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)遵守國家法律
中江县| 兰溪市| 桃园市| 冷水江市| 九寨沟县| 周口市| 灵川县| 长治市| 福州市| 呼玛县| 台东市| 浠水县| 板桥市| 舞阳县| 腾冲县| 十堰市| 沭阳县| 安康市| 威海市| 南城县| 中卫市| 合川市| 汉中市| 海安县| 黄山市| 瓦房店市| 施甸县| 忻城县| 伽师县| 浮梁县| 邢台市| 嵩明县| 双牌县| 阿尔山市| 平远县| 七台河市| 岫岩| 尚志市| 广安市| 扎赉特旗| 修武县|