用python將txt檔案拆分成多個小檔案

2021-10-05 04:14:40 字數 1040 閱讀 4265

txt檔案本身為由逗號區分開的連續字串,字串均為鏈結,因此一般特徵也比較明顯,檔案如下:

首先想到方法是用with open read函式獲取檔案資訊,通過』,『來拆分各個url,按照url網域名稱來得到小檔名,從而完成檔案拆分,但此時得到的小檔案可讀性很差,經過查詢得知,可將此時各url較共同的字尾替換為原字元+』

』,並另存為htm檔案,瀏覽器開啟另存檔案,即可得到每個url一行的呈現。基本預期達到,但是方法原始,手工操作很多。

後來經過查詢試驗,調整為一下思路:

利用with open read函式獲取檔案資訊,此時指定編碼為utf-8,利用split函式分解連續字串,以每個逗號為標誌拆分後傳到到列表中,

利用迴圈按照每個鏈結字串中『//..**/『主要網域名稱部分來區分不同小檔案範圍,並將網域名稱作為小檔名稱,此時迴圈界定檔案內容範圍方式採用某網域名稱

與其後網域名稱是否一致來判斷是否同屬乙個檔案,每個迴圈結束令寫入檔案的列表置空,重新傳入檔案內容。

1.原始檔編碼格式不為utf-8,重新修改另存嘗試無果,遂在with open和write時引用encoding引數指定傳來編碼為utf-8

2.正規表示式匹配字元』//『與』/『時可以直接匹配,上述兩種字元並不是需要轉義的字元,其次findall基於貪婪匹配,返回字串包括太多不合適字元,用』.+?『得到0或者1個滿足條件的字串即可實現

3.迴圈迭代獲取列表中某元素其後乙個元素內容採用列表.index獲取當前元素下標,利用切片獲取下乙個元素即可,當下個元素下標已超出列表長度,定義特殊值

4.寫入檔案時,每個列表元素再新增』\n』換行符來實現換行,提公升可讀性。

**如下:

其中深層緣由也不甚清楚,這裡只是分享實踐試出來的一種方法

參考大佬

用python讀取 寫入txt檔案

在做黑名單入庫 mysql 的時候,為了方便以後的管理,決定採取按首字母分類的方式進行管理。而一般情況下,都是把txt檔案裡的內容全部匯入資料庫,於是,我便用python對混雜的資料進行了處理,按首字母分為了27個txt檔案 包括number 如下 f1 open 需要處理的檔案路徑 s while...

python將excel檔案變成txt檔案

import xlrd def row2str row data values for i in range len row data if i len row data 1 values values str row data i else values values str row data i...

python將txt檔案轉換成csv

直接上 coding utf 8 import pandas as pd import configparser import csv from py2neo import graph,node,relationship import urllib3 urllib3.disable warnings...