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

Python實現(xiàn)目錄自動清洗

 更新時間:2023年11月20日 10:41:12   作者:東離與糖寶  
這篇文章主要為大家詳細介紹了Python實現(xiàn)目錄自動清洗的相關(guān)知識,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下

一、需求分析

1. 這是一個標準的章節(jié)目錄,我們需要保留目錄的前兩級標題,也就是包含章和節(jié)字的標題

2. 需要在二級標題所在行最前面空4個格子,一級標題不用

3. 需要在章和節(jié)字的后面加上一個空格

4. 需要在頁碼前面加上=>符號

5. 示例效果如下:

二、操作步驟詳解(標準章節(jié))

1. 提取文章目錄

1. 圖片識別文字提取文章目錄

http://183.62.34.62:8004/docs

2. 使用方法

3. 識別示例

2. 更改保存目錄.txt

你可以使用Python中的open函數(shù)來打開文件,read方法讀取文件內(nèi)容,然后對內(nèi)容進行修改,最后使用write方法將修改后的內(nèi)容寫回文件。以下是一個簡單的例子:

import os
# 獲取桌面路徑
desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")

# 目標文件路徑
file_path = os.path.join(desktop_path, "目錄.txt")

# 打開文件并讀取內(nèi)容
with open(file_path, 'r', encoding='utf-8') as file:
    content = file.read()

# 修改內(nèi)容(這里只是一個簡單的例子)
modified_content = content.replace('章', '章666')

# 將修改后的內(nèi)容寫回文件
with open(file_path, 'w', encoding='utf-8') as file:
    file.write(modified_content)

請確保你有足夠的權(quán)限讀取和寫入文件。此外,這只是一個簡單的例子,如果需要進行更復雜的操作,可以使用正則表達式或其他處理方式來實現(xiàn)。

3. 二級標題前面加4個空格

    # 去除空格
    line = line.replace(" ", "")
    if '節(jié)' in line:
        # 二級標題添加4個空格
        line = ' ' * 4 + line

lstrip(' ') 是 Python 字符串方法,用于刪除字符串開頭(左側(cè))的指定字符。在這里,' ' 表示空格字符。

4. 在章字和節(jié)字后面添加一個空格

    # 使用正則表達式在'章'或'節(jié)'后面添加一個空格
    line = re.sub(r'(章|節(jié))(?![ ])', r'\1 ', line)

5. 在頁碼前面加上=>符號

    # 匹配并去除最外層的英文括號
    pattern_en = r'\(([\d\s]+)\)'
    line = re.sub(pattern_en, r'\1', line)
    # 匹配并去除最外層的中文括號及其內(nèi)部內(nèi)容(包括空格)
    pattern = r'(([^)]+))'
    line = re.sub(pattern, r'\1', line)
    line = line.replace(" ", "")
    # 確保每行只有一個 =>
    if '=>' not in line:
        # 在每行數(shù)字前加上 =>
        line = re.sub(r'(\d+)', r'=>\1', line)

6. 代碼完全體

# 獲取桌面路徑
import os
import re
desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
# 目標文件路徑
file_path = os.path.join(desktop_path, "目錄.txt")
# 打開文件并讀取內(nèi)容
with open(file_path, 'r', encoding='utf-8') as file:
    lines = file.readlines()
modified_lines = []
for line in lines:
    # 去除空格
    line = line.replace(" ", "")
    # 匹配并去除最外層的英文括號
    pattern_en = r'\(([\d\s]+)\)'
    line = re.sub(pattern_en, r'\1', line)
    # 匹配并去除最外層的中文括號及其內(nèi)部內(nèi)容(包括除數(shù)字和空格以外的字符)
    pattern = r'(([^)]+))'
    line = re.sub(pattern, r'\1', line)
    # 確保每行只有一個 =>
    if '=>' not in line:
        # 在每行數(shù)字前加上 =>
        line = re.sub(r'(\d+)', r'=>\1', line)
    # 使用正則表達式在'章'或'節(jié)'后面添加一個空格
    line = re.sub(r'(章|節(jié))(?![ ])', r'\1 ', line)
    if '節(jié)' in line:
        # 二級標題添加4個空格
        line = ' ' * 4 + line
    modified_lines.append(line)
# 將修改后的內(nèi)容寫回文件
with open(file_path, 'w', encoding='utf-8') as file:
    file.writelines(modified_lines)
# 讀取文件內(nèi)容
with open(file_path, 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

三、進階一(有章無節(jié)+小數(shù)二級標題)

1. 二級標題前面加4個空格

如果章字不在行內(nèi),則初步認定他為二級標題

     # 去除空格
    line = line.replace(" ", "")
     if '章' not in line:
        # 二級標題添加4個空格
        line = ' ' * 4 + line

2. 在標題里面添加一個空格

    # 使用正則表達式在'章'或'節(jié)'后面添加一個空格,僅在后面沒有空格的情況下
    line = re.sub(r'(章|節(jié))(?![ ])', r'\1 ', line)
    # 在小數(shù)點后添加空格
    line = re.sub(r'(\.\d)', r'\1 ', line)

3. 在頁碼前面加上=>符號

    # 匹配并去除最外層的英文括號
    pattern_en = r'\(([\d\s]+)\)'
    line = re.sub(pattern_en, r'\1', line)
    # 匹配并去除最外層的中文括號及其內(nèi)部內(nèi)容(包括除數(shù)字和空格以外的字符)
    pattern = r'(([^)]+))'
    line = re.sub(pattern, r'\1', line)
    # 確保每行只有一個 =>
    if '=>' not in line:
        # 在頁碼數(shù)字前添加 =>(只在行尾)
        line = re.sub(r'(\d+)$', r'=>\1', line)

4. 去除=>符號和漢字之間的冗余符號

    # 去除中文漢字和'=>整體符號左邊的冗余符號
    pattern = r'([\u4e00-\u9fff]+)[^\w\s]+=>'
    line = re.sub(pattern, r'\1=>', line)

5. 刪除空行

    # 去除空格
    line = line.replace(" ", "")
    if len(line) == 1:
        continue

6. 代碼完全體

# 獲取桌面路徑
import os
import re
desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
# 目標文件路徑
file_path = os.path.join(desktop_path, "目錄.txt")
# 打開文件并讀取內(nèi)容
with open(file_path, 'r', encoding='utf-8') as file:
    lines = file.readlines()
modified_lines = []
for line in lines:
    # 去除空格
    line = line.replace(" ", "")
    # 使用正則表達式在'章'或'節(jié)'后面添加一個空格,僅在后面沒有空格的情況下
    line = re.sub(r'(章|節(jié))(?![ ])', r'\1 ', line)
    # 在小數(shù)點后添加空格
    line = re.sub(r'(\.\d)', r'\1 ', line)
    if '章' not in line:
        # 二級標題添加4個空格
        line = ' ' * 4 + line
    # 匹配并去除最外層的英文括號
    pattern_en = r'\(([\d\s]+)\)'
    line = re.sub(pattern_en, r'\1', line)
    # 匹配并去除最外層的中文括號及其內(nèi)部內(nèi)容(包括除數(shù)字和空格以外的字符)
    pattern = r'(([^)]+))'
    line = re.sub(pattern, r'\1', line)
    # 確保每行只有一個 =>
    if '=>' not in line:
        # 在頁碼數(shù)字前添加 =>(只在行尾)
        line = re.sub(r'(\d+)$', r'=>\1', line)
    modified_lines.append(line)
# 將修改后的內(nèi)容寫回文件
with open(file_path, 'w', encoding='utf-8') as file:
    file.writelines(modified_lines)
# 讀取文件內(nèi)容
with open(file_path, 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

7. 進階說明

1. 兼容標準章節(jié)版本

2. 章和章之間識別為第二級目錄

3. 只在標題末尾頁碼數(shù)字添加=>符號

4. 去除箭頭和漢字之間識別出來的冗余符號

5. 去除空行

拓展與補充

content = file.read() 與 lines = file.readlines() 讀取文件的區(qū)別

在 Python 中,file.read()file.readlines() 兩者可以在同一個文件句柄中使用,但是要注意的是,file.read() 會讀取整個文件內(nèi)容為一個字符串,而 file.readlines() 會讀取整個文件內(nèi)容并將每一行作為一個字符串放入列表中

如果你使用了 file.read(),那么之后再使用 file.readlines() 將不會得到任何內(nèi)容,因為文件指針已經(jīng)在文件的末尾。如果需要再次讀取文件,你可以使用 file.seek(0) 將文件指針重新定位到文件的開頭

以下是一個演示的例子:

# 使用 file.read()
with open('example.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)
# 使用 file.readlines(),注意在上面使用了 file.read() 之后,需要重新打開文件或者使用 file.seek(0)
with open('example.txt', 'r', encoding='utf-8') as file:
    file.seek(0)
    lines = file.readlines()
    print(lines)

總的來說,兩者是可以在同一個文件句柄中使用的,只是需要注意文件指針的位置。

以上就是Python實現(xiàn)目錄自動清洗的詳細內(nèi)容,更多關(guān)于Python目錄清洗的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • pygame游戲之旅 添加碰撞效果的方法

    pygame游戲之旅 添加碰撞效果的方法

    這篇文章主要為大家詳細介紹了pygame游戲之旅的第7篇,教大家如何添加碰撞的效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 利用python爬取m3u8格式視頻的具體實現(xiàn)

    利用python爬取m3u8格式視頻的具體實現(xiàn)

    之前爬取的視頻都是mp4格式的,直接用requests請求就可以直接爬取,最近公司安排了一個小任務,需要爬取m3u8這種格式的視頻,下面這篇文章主要給大家介紹了關(guān)于利用python爬取m3u8格式視頻的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • ndarray數(shù)組的轉(zhuǎn)置(transpose)和軸對換方式

    ndarray數(shù)組的轉(zhuǎn)置(transpose)和軸對換方式

    這篇文章主要介紹了ndarray數(shù)組的轉(zhuǎn)置(transpose)和軸對換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python?十大經(jīng)典排序算法實現(xiàn)詳解

    Python?十大經(jīng)典排序算法實現(xiàn)詳解

    排序算法是《數(shù)據(jù)結(jié)構(gòu)與算法》中最基本的算法之一。排序算法可以分為內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存
    2022-01-01
  • pytorch實現(xiàn)梯度下降和反向傳播圖文詳細講解

    pytorch實現(xiàn)梯度下降和反向傳播圖文詳細講解

    這篇文章主要介紹了pytorch實現(xiàn)梯度下降和反向傳播,反向傳播的目的是計算成本函數(shù)C對網(wǎng)絡(luò)中任意w或b的偏導數(shù)。一旦我們有了這些偏導數(shù),我們將通過一些常數(shù)α的乘積和該數(shù)量相對于成本函數(shù)的偏導數(shù)來更新網(wǎng)絡(luò)中的權(quán)重和偏差
    2023-04-04
  • Python拉取視頻流的性能優(yōu)化指南

    Python拉取視頻流的性能優(yōu)化指南

    本文介紹了在Python中拉取網(wǎng)絡(luò)視頻流時遇到的性能問題,并提供了一套優(yōu)化方案,主要包括生產(chǎn)者消費者模式、解耦生產(chǎn)與消費、選擇正確的后端與解碼參數(shù)、跳幀處理、更高效的內(nèi)存結(jié)構(gòu)、多進程繞過GIL等,此外,還提到了高級優(yōu)化技巧,需要的朋友可以參考下
    2026-04-04
  • Python 合并多個TXT文件并統(tǒng)計詞頻的實現(xiàn)

    Python 合并多個TXT文件并統(tǒng)計詞頻的實現(xiàn)

    這篇文章主要介紹了Python 合并多個TXT文件并統(tǒng)計詞頻的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • pandas的連接函數(shù)concat()函數(shù)的具體使用方法

    pandas的連接函數(shù)concat()函數(shù)的具體使用方法

    這篇文章主要介紹了pandas的連接函數(shù)concat()函數(shù)的具體使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 使用python進行PostgreSQL數(shù)據(jù)庫連接全過程

    使用python進行PostgreSQL數(shù)據(jù)庫連接全過程

    這篇文章主要介紹了使用python進行PostgreSQL數(shù)據(jù)庫連接的相關(guān)資料,包括安裝psycopg2模塊、使用PyCharm進行圖形化連接、代碼連接數(shù)據(jù)庫的方法、以及如何執(zhí)行DML和DQL操作,需要的朋友可以參考下
    2025-03-03
  • Django實現(xiàn)簡單分頁功能的方法詳解

    Django實現(xiàn)簡單分頁功能的方法詳解

    這篇文章主要介紹了Django實現(xiàn)簡單分頁功能的方法,結(jié)合實例形式分析了django的第三方模塊django-pure-pagination的安裝、使用及實現(xiàn)分頁的相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12

最新評論

开原市| 略阳县| 扶沟县| 岳池县| 阳新县| 晴隆县| 什邡市| 镇巴县| 大兴区| 吴川市| 天等县| 青浦区| 从化市| 龙州县| 台湾省| 班戈县| 三江| 古交市| 万年县| 苍梧县| 宁津县| 五河县| 炉霍县| 洞头县| 黔东| 庆阳市| 和田市| 兴宁市| 博客| 南皮县| 建始县| 禄劝| 屯昌县| 阿合奇县| 陆良县| 肇东市| 封开县| 九龙城区| 汨罗市| 江华| 化州市|