根據txt每行內容長短排序並重新寫入txt儲存

2021-08-21 22:17:25 字數 1319 閱讀 6299

有時候在處理一些txt檔案的時候,需要按照一定的要求對txt內容進行排序,比如我在做乙個ocr文字識別的時候,由於標籤檔案是txt的文字,但是長短不一,且差別大。我用的網路需要按照標籤的長短進行排序後形成新的標籤txt檔案,這時候送人網路訓練的效果會比較好。這裡不聊網路的事兒哈哈。只聊怎麼對txt內容根據它的長短排序

先附一張我排序前的txt的內容:

涉及到隱私照常打碼哈哈。這裡每行內容是由「 」空格符分隔的

下邊示例怎麼根據空格符後邊的(也就是右邊的內容)內容長短對原始文字進行排序:

不多說,直接上**:

import os

import os.path

txt_path = 'd:/youxinprojections/trafic-youxin/mobilenet_v1/obtain_qq_json_new/crop_ocr_imgs/'

des_txt_path = 'd:/youxinprojections/trafic-youxin/mobilenet_v1/obtain_qq_json_new/crop_ocr_txt/'

txt_files = os.listdir(txt_path)#這裡得到的是txt_path路徑下所有的txt檔案,我這裡需要對txt批量處理

def sort_txt_content():

for txtfile in txt_files:

if not os.path.isdir(txtfile):

out_file = open(des_txt_path + txtfile, 'a')#後邊引數為'a'時,意味寫入時自動換行累加,不用額外新增'\n'符

in_file = open(txt_path + txtfile, 'r')

lines = in_file.readlines()

b = [[line.split(" ")[1]] for line in lines]#這裡的b取到的就是空格符右邊的內容

lines.sort(key = lambda b: len(b))

for line in lines:

print(line)

out_file.write(line)#重新寫入新的txt檔案

大功告成!!!

簡單的讀取檔案的每行內容

最近在做音訊處理的東西,分類svm後得到如下的檔案 1.11 的這樣乙個檔案,每行只有 1或1,現為統計分類器的準確性,需要統計出1和 1的個數 程式開始如下 include include include int main else while fgets buf,10,fp null print...

python 讀txt檔案,按 , 分割每行資料

fname 新建資料夾 yob2010.txt 資料夾路徑 with open fname,r encoding utf 8 as f for line in f.readlines 按行讀取每行 print line 1 split 切片去掉換行符,再以 分割字串 得到乙個列表 s i 1 spl...

python實現為 txt檔案每行新增資料

import os import numpy as np txt檔案的路徑 path home yangguide videos 0.txt open path 開啟.txt檔案 with open path as f1 cnames f1.readlines readlines 讀取.txt檔案的...