Python如何從txt文件中提取特定數(shù)據(jù)
本段代碼用于,想要從一段txt文件中只提取目標(biāo)數(shù)據(jù)的情況。
代碼:
def get_data(txt_path: str = '', epoch: int = 100, target: str = '', target_data_len: int = 5):
num_list = [] # 將提取出來(lái)的數(shù)據(jù)保存到列表,并在最后返回
data = open(txt_path, encoding="utf-8") # 打開(kāi)文件
str1 = data.read() # 將文件中讀取到的內(nèi)容轉(zhuǎn)化為字符串
data.close() # 關(guān)閉文件
for i in range(0, epoch):
index = str1.find(target) # 查找字符串str1中str2字符串的位置
num_list.append(float(str1[index+len(target):index+len(target)+target_data_len])) # 將需要的數(shù)據(jù)提取到列表中
str1 = str1.replace(target, 'xxxx', 1) # 替換掉已經(jīng)查閱過(guò)的地方,' xxxx '表示替換后的內(nèi)容,1表示在字符串中的替換次數(shù)為1
return num_list函數(shù)參數(shù)解釋?zhuān)?/p>
- txt_path 文件路徑
- epoch 這份文本文件中要提取出的數(shù)據(jù)個(gè)數(shù),默認(rèn)100
- target 目標(biāo)數(shù)據(jù)的前綴
- target_data_len 目標(biāo)數(shù)據(jù)的長(zhǎng)度,默認(rèn)為5
返回值,列表數(shù)據(jù)
使用舉例:
txt文檔內(nèi)容:
x1:273 test3:477 y4:38489 y1:149 x2:423
x1:274 test3:475 y4:37956 y1:152 x2:422
x1:269 test3:473 y4:38156 y1:152 x2:421
x1:271 test3:471 y4:38156 y1:155 x2:418
x1:272 test3:467 y4:38056 y1:158 x2:416
x1:275 test3:466 y4:37956 y1:161 x2:415
使用:
data_path = "D:/program/test/double_camera_data/x_data.txt" # 提取x1的數(shù)據(jù) list_x1 = get_data(data_path, 6, target="x1:", target_data_len=3) # 提取test3的數(shù)據(jù) list_test3 = get_data(data_path, 6, target="test3:", target_data_len=3) # 提取y4的數(shù)據(jù) list_y4 = get_data(data_path, 6, target="y4:", target_data_len=6) print(list_x1) print(list_test3) print(list_y4)
輸出:
[273.0, 274.0, 269.0, 271.0, 272.0, 275.0]
[477.0, 475.0, 473.0, 471.0, 467.0, 466.0]
[38489.0, 37956.0, 38156.0, 38156.0, 38056.0, 37956.0]
附:Python 從不規(guī)則文本中提取有效信息
背景:從一個(gè)混有文字和多個(gè)表格的word文檔里,提取表格中有效信息
代碼:
from docx import Document
import numpy as np
import pandas as pd
#讀取文件
doc = Document("文件名.docx")
#讀取表格
tables = doc.tables
#print(len(tables))
rlt = []
flag = 0
for t in tables: #每一個(gè)表格
rows = t.rows
for r in rows: #每一行
cols = r.cells
for c in cols: #每一個(gè)單元格
if flag != 0:
rlt.append(c.text)
flag = 0
continue
if c.text == "不動(dòng)產(chǎn)所有權(quán)人" or c.text == "不動(dòng)產(chǎn)權(quán)屬證明" or c.text == "項(xiàng)目名稱(chēng)" or c.text == "項(xiàng)目地址":
flag = 1
nums = len(rlt)
rlt = np.array(rlt).reshape((nums//4,4))
#print(rlt)
df = pd.DataFrame(rlt,columns= ["不動(dòng)產(chǎn)所有權(quán)人" ,"不動(dòng)產(chǎn)權(quán)屬證明" ,"項(xiàng)目名稱(chēng)","項(xiàng)目地址"])
#print(df)
df.to_excel('rlt.xlsx')總結(jié)
到此這篇關(guān)于Python如何從txt文件中提取特定數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python從txt文件提取數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
簡(jiǎn)單了解Python字典copy與賦值的區(qū)別
這篇文章主要介紹了簡(jiǎn)單了解Python字典copy與賦值區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
使用python求斐波那契數(shù)列中第n個(gè)數(shù)的值示例代碼
這篇文章主要給大家介紹了關(guān)于使用python求斐波那契數(shù)列中第n個(gè)數(shù)的值的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
詳解pycharm連接不上mysql數(shù)據(jù)庫(kù)的解決辦法
這篇文章主要介紹了詳解pycharm連接不上mysql數(shù)據(jù)庫(kù)的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
詳解pytest實(shí)現(xiàn)mark標(biāo)記功能詳細(xì)介紹
這篇文章主要介紹了詳解pytest實(shí)現(xiàn)mark標(biāo)記功能詳細(xì)介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
淺談PyQt5 的幫助文檔查找方法,可以查看每個(gè)類(lèi)的方法
今天小編就為大家分享一篇淺談PyQt5 的幫助文檔查找方法,可以查看每個(gè)類(lèi)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Python中如何使用Matplotlib庫(kù)繪制圖形
Matplotlib是一個(gè)Python的2D繪圖庫(kù),通過(guò)Matplotlib開(kāi)發(fā)者可以?xún)H需要幾行代碼,便可以生成繪圖,直方圖,功率譜,條形圖,錯(cuò)誤圖,散點(diǎn)圖等,這篇文章主要給大家介紹了Python中如何使用Matplotlib庫(kù)繪制圖形的相關(guān)資料2022-07-07
Python+Tkinter創(chuàng)建一個(gè)簡(jiǎn)單的鬧鐘程序
這篇文章主要為大家詳細(xì)介紹了如何使用 Python 的 Tkinter 庫(kù)創(chuàng)建一個(gè)簡(jiǎn)單的鬧鐘程序,它可以在指定的時(shí)間播放一個(gè)聲音來(lái)提醒你,感興趣的可以學(xué)習(xí)一下2023-04-04
基于Python實(shí)現(xiàn)配置熱加載的方法詳解
所謂的配置熱加載,也就是說(shuō)當(dāng)服務(wù)收到配置更新消息之后,我們不用重啟服務(wù)就可以使用最新的配置去執(zhí)行任務(wù)。本文將介紹如何用Python實(shí)現(xiàn)配置熱加載,需要的可以參考一下2022-07-07
Python入門(mén)教程(四十一)Python的NumPy數(shù)組索引
這篇文章主要介紹了Python入門(mén)教程(四十一)Python的NumPy數(shù)組索引,數(shù)組索引是指使用方括號(hào)([])來(lái)索引數(shù)組值,numpy提供了比常規(guī)的python序列更多的索引工具,除了按整數(shù)和切片索引之外,數(shù)組可以由整數(shù)數(shù)組索引、布爾索引及花式索引,需要的朋友可以參考下2023-05-05
python執(zhí)行shell并獲取結(jié)果的詳細(xì)示例
在Python中執(zhí)行Shell命令并獲取其結(jié)果,通??梢允褂胹ubprocess模塊,這個(gè)模塊允許我們啟動(dòng)新的進(jìn)程,連接到它們的輸入/輸出/錯(cuò)誤管道,并獲取它們的返回碼,下面是一個(gè)詳細(xì)的示例,展示了如何使用subprocess.run()函數(shù)來(lái)執(zhí)行Shell命令并獲取其輸出,需要的朋友可以參考下2024-07-07

