python 提取txt文件兩個字符之間的內容


背景

試卷中存在1~244道題目,需要隨機拆分成6份試卷,每份試卷30道題。

程序

import random
#指定讀取文件
f = open('exam.txt',encoding='utf-8')
#指定輸出文件
out_file = open("out.txt", 'w',encoding='utf-8')
mid_res=[]#指定緩沖區
res = []#指定最終結果
#按行讀取文件。如果該行存在指定字符[T],則將其切割
for line in f:
    tmp=line.split('[T]')#tmp即按行讀取的內容,為list類型
        #該行存在指定字符[T],執行切割后句子被分成了兩部分,存入緩沖區后緩沖區置空
        if len(tmp)>1:
            print(mid_res)
            res.append(mid_res)
            mid_res=[]
            mid_res.append(tmp)
        #該行不存在指定字符[T],不執行切割,句子長度為1。直接存入緩沖區
        else:
            mid_res.append(tmp)
#生成隨機數
L1 = random.sample(range(1, 244), 30)#生成1~244的30個隨機數
L1.sort()
print(L1)
#res為list類型,是二維數據,res[0]、res[1]...分別存儲了指定字符之間的內容,即每一道題的內容
for i in L1:
    for j in range(len(res[i])):
        out_file.writelines(res[i][j])
#關閉輸出文件
out_file.close()

改進方向:

1、由txt文檔改進至word文檔,使其支持圖片顯示
2、刪除變量res為空的首行

附:文件格式

可以按照字符.或[T]進行分割
1.[T]ZE-A-001 4 3 1
( )彈性式壓力表的主要特點是結構簡單、價格便宜、使用方便、應用廣泛。[T/]
[D]√[D/]
2.[T]ZE-A-001 4 3 5
( )膜盒壓力表屬於彈性式壓力表,其量程通常為1kPa~2.5MPa。[T/]
[D]×[D/]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM