欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)目錄自動(dòng)清洗

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

一、需求分析

1. 這是一個(gè)標(biāo)準(zhǔn)的章節(jié)目錄,我們需要保留目錄的前兩級(jí)標(biāo)題,也就是包含章和節(jié)字的標(biāo)題

2. 需要在二級(jí)標(biāo)題所在行最前面空4個(gè)格子,一級(jí)標(biāo)題不用

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

4. 需要在頁碼前面加上=>符號(hào)

5. 示例效果如下:

二、操作步驟詳解(標(biāo)準(zhǔn)章節(jié))

1. 提取文章目錄

1. 圖片識(shí)別文字提取文章目錄

http://183.62.34.62:8004/docs

2. 使用方法

3. 識(shí)別示例

2. 更改保存目錄.txt

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

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

# 目標(biāo)文件路徑
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)容(這里只是一個(gè)簡(jiǎn)單的例子)
modified_content = content.replace('章', '章666')

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

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

3. 二級(jí)標(biāo)題前面加4個(gè)空格

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

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

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

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

5. 在頁碼前面加上=>符號(hào)

    # 匹配并去除最外層的英文括號(hào)
    pattern_en = r'\(([\d\s]+)\)'
    line = re.sub(pattern_en, r'\1', line)
    # 匹配并去除最外層的中文括號(hào)及其內(nèi)部?jī)?nèi)容(包括空格)
    pattern = r'(([^)]+))'
    line = re.sub(pattern, r'\1', line)
    line = line.replace(" ", "")
    # 確保每行只有一個(gè) =>
    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")
# 目標(biāo)文件路徑
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(" ", "")
    # 匹配并去除最外層的英文括號(hào)
    pattern_en = r'\(([\d\s]+)\)'
    line = re.sub(pattern_en, r'\1', line)
    # 匹配并去除最外層的中文括號(hào)及其內(nèi)部?jī)?nèi)容(包括除數(shù)字和空格以外的字符)
    pattern = r'(([^)]+))'
    line = re.sub(pattern, r'\1', line)
    # 確保每行只有一個(gè) =>
    if '=>' not in line:
        # 在每行數(shù)字前加上 =>
        line = re.sub(r'(\d+)', r'=>\1', line)
    # 使用正則表達(dá)式在'章'或'節(jié)'后面添加一個(gè)空格
    line = re.sub(r'(章|節(jié))(?![ ])', r'\1 ', line)
    if '節(jié)' in line:
        # 二級(jí)標(biāo)題添加4個(gè)空格
        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)

三、進(jìn)階一(有章無節(jié)+小數(shù)二級(jí)標(biāo)題)

1. 二級(jí)標(biāo)題前面加4個(gè)空格

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

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

2. 在標(biāo)題里面添加一個(gè)空格

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

3. 在頁碼前面加上=>符號(hào)

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

4. 去除=>符號(hào)和漢字之間的冗余符號(hào)

    # 去除中文漢字和'=>整體符號(hào)左邊的冗余符號(hào)
    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")
# 目標(biāo)文件路徑
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(" ", "")
    # 使用正則表達(dá)式在'章'或'節(jié)'后面添加一個(gè)空格,僅在后面沒有空格的情況下
    line = re.sub(r'(章|節(jié))(?![ ])', r'\1 ', line)
    # 在小數(shù)點(diǎn)后添加空格
    line = re.sub(r'(\.\d)', r'\1 ', line)
    if '章' not in line:
        # 二級(jí)標(biāo)題添加4個(gè)空格
        line = ' ' * 4 + line
    # 匹配并去除最外層的英文括號(hào)
    pattern_en = r'\(([\d\s]+)\)'
    line = re.sub(pattern_en, r'\1', line)
    # 匹配并去除最外層的中文括號(hào)及其內(nèi)部?jī)?nèi)容(包括除數(shù)字和空格以外的字符)
    pattern = r'(([^)]+))'
    line = re.sub(pattern, r'\1', line)
    # 確保每行只有一個(gè) =>
    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. 進(jìn)階說明

1. 兼容標(biāo)準(zhǔn)章節(jié)版本

2. 章和章之間識(shí)別為第二級(jí)目錄

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

4. 去除箭頭和漢字之間識(shí)別出來的冗余符號(hào)

5. 去除空行

拓展與補(bǔ)充

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

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

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

以下是一個(gè)演示的例子:

# 使用 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)

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

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

相關(guān)文章

  • OpenCV?光流Optical?Flow示例

    OpenCV?光流Optical?Flow示例

    這篇文章主要為大家介紹了OpenCV?光流Optical?Flow示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 如何使用?Python?Timedelta?月份計(jì)算日期

    如何使用?Python?Timedelta?月份計(jì)算日期

    在本篇文章中,我們將通過?timedelta?學(xué)習(xí)如何在?Python?中使用日期時(shí)間,?我們將了解如何計(jì)算當(dāng)前日期或任何其他日期六個(gè)月后的日期,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • python實(shí)現(xiàn)問號(hào)表達(dá)式(?)的方法

    python實(shí)現(xiàn)問號(hào)表達(dá)式(?)的方法

    這篇文章主要介紹了python實(shí)現(xiàn)問號(hào)(?)表達(dá)式的方法,大家參考使用吧
    2013-11-11
  • 用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • python函數(shù)局部變量、全局變量、遞歸知識(shí)點(diǎn)總結(jié)

    python函數(shù)局部變量、全局變量、遞歸知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了關(guān)于python函數(shù)局部變量、全局變量、遞歸知識(shí)點(diǎn),有興趣的朋友們學(xué)習(xí)參考下。
    2019-11-11
  • 在VS2017中用C#調(diào)用python腳本的實(shí)現(xiàn)

    在VS2017中用C#調(diào)用python腳本的實(shí)現(xiàn)

    這篇文章主要介紹了在VS2017中用C#調(diào)用python腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python中六大超時(shí)處理方法介紹

    Python中六大超時(shí)處理方法介紹

    在?Python?中,超時(shí)處理是一項(xiàng)非常常見的需求,尤其是在處理阻塞任務(wù)或并發(fā)任務(wù)時(shí),本文整理了大家常用的六大超時(shí)處理方法,感興趣的小伙伴可以參考下
    2025-01-01
  • tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫for的方法

    tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫for的方法

    今天小編就為大家分享一篇tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫for的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 如何在Python中將字符串轉(zhuǎn)換為數(shù)組詳解

    如何在Python中將字符串轉(zhuǎn)換為數(shù)組詳解

    最近在用Python,做一個(gè)小腳本,有個(gè)操作就是要把內(nèi)容換成數(shù)組對(duì)象再進(jìn)行相關(guān)操作,下面這篇文章主要給大家介紹了關(guān)于如何在Python中將字符串轉(zhuǎn)換為數(shù)組的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • python基于TCP實(shí)現(xiàn)的文件下載器功能案例

    python基于TCP實(shí)現(xiàn)的文件下載器功能案例

    這篇文章主要介紹了python基于TCP實(shí)現(xiàn)的文件下載器功能,結(jié)合具體實(shí)例形式分析了Python使用socket模塊實(shí)現(xiàn)的tcp協(xié)議下載功能客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12

最新評(píng)論