五月天青色头像情侣网名,国产亚洲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)遵守國家法律
金阳县| 视频| 鞍山市| 磐安县| 平罗县| 潍坊市| 昆山市| 锡林浩特市| 温州市| 深圳市| 阜新市| 连江县| 平安县| 五河县| 金沙县| 四平市| 柳河县| 长海县| 东源县| 清丰县| 永登县| 茌平县| 平度市| 大石桥市| 沙雅县| 大厂| 扬州市| 邢台市| 洛浦县| 乐陵市| 大石桥市| 白玉县| 正宁县| 垫江县| 绥德县| 紫阳县| 江川县| 克山县| 衡南县| 平凉市| 贵定县|