教你用python提取txt文件中的特定信息并寫入Excel
問題描述:
我有一個這樣的數(shù)據(jù)集叫test_result_test.txt,大概幾百上千行,兩行數(shù)據(jù)之間隔一個空行。

N:505904X:0.969wsecY:0.694wsec
N:506038X:4.246wsecY:0.884wsec
N:450997X:8.472wsecY:0.615wsec
...
現(xiàn)在我希望能提取每一行X:和Y:后面的數(shù)字,然后保存進(jìn)Excel做進(jìn)一步的數(shù)據(jù)處理和分析
就拿第一行來說,我只需要0.969 和0.694。每一行三個數(shù)字的具體位置是不確定的,因此不能用固定的列數(shù)去處理,剛好發(fā)現(xiàn)split函數(shù)能對文本進(jìn)行切片,所以這里我們用這個函數(shù)來提取需要的數(shù)字信息。
split函數(shù)語法如下:
1、split()函數(shù)
語法:str.split(str="",num=string.count(str))[n]
參數(shù)說明:
str:表示為分隔符,默認(rèn)為空格,但是不能為空('')。若字符串中沒有分隔符,則把整個字符串作為列表的一個元素
num:表示分割次數(shù)。如果存在參數(shù)num,則僅分隔成 num+1 個子字符串,并且每一個子字符串可以賦給新的變量
[n]:表示選取第n個分片
注意:當(dāng)使用空格作為分隔符時,對于中間為空的項(xiàng)會自動忽略

以“:”進(jìn)行切片得到

取第三個分片進(jìn)行“w”切片,得到

這里的第一分片就是我們要的X坐標(biāo)
最后我們分析一下思路:
首先定位文件位置讀取txt文件內(nèi)容,去掉空行保存Excel準(zhǔn)備工作,新建Excel表格,并編輯好標(biāo)題為寫入數(shù)據(jù)就位對于每一行數(shù)據(jù),首先用‘:'進(jìn)行切片,再用‘w'切片得到想要的數(shù)字,然后寫入Excel保存
工具:
安裝好python模塊的visual studio 2017
包:os,xlwt
操作:
先import我們所需要的包
import os import xlwt
1.找到我們想要處理的文件,因此去到指定的位置,定位好文件
a = os.getcwd() #獲取當(dāng)前目錄
print (a) #打印當(dāng)前目錄
os.chdir('D:/') #定位到新的目錄,請根據(jù)你自己文件的位置做相應(yīng)的修改
a = os.getcwd() #獲取定位之后的目錄
print(a) #打印定位之后的目錄
2.打開我們的txt文件查看下里面的內(nèi)容(這一步可有可無)
#讀取目標(biāo)txt文件里的內(nèi)容,并且打印出來顯示
with open('test_result1.txt','r') as raw:
for line in raw:
print (line)
3.去除空白行并保存
#去掉txt里面的空白行,并保存到新的文件中
with open('test_result1.txt','r',encoding = 'utf-8') as fr, open('output.txt','w',encoding= 'utf-8') as fd:
for text in fr.readlines():
if text.split():
fd.write(text)
print('success')
執(zhí)行完畢同個位置下多了一個txt文件

4. 創(chuàng)建一個Excel文件
#創(chuàng)建一個workbook對象,相當(dāng)于創(chuàng)建一個Excel文件 book = xlwt.Workbook(encoding='utf-8',style_compression=0) ''' Workbook類初始化時有encoding和style_compression參數(shù) encoding:設(shè)置字符編碼,一般要這樣設(shè)置:w = Workbook(encoding='utf-8'),就可以在excel中輸出中文了。默認(rèn)是ascii。 style_compression:表示是否壓縮,不常用。 '''
5.創(chuàng)建一個sheet對象
# 創(chuàng)建一個sheet對象,一個sheet對象對應(yīng)Excel文件中的一張表格。
sheet = book.add_sheet('Output', cell_overwrite_ok=True)
# 其中的Output是這張表的名字,cell_overwrite_ok,表示是否可以覆蓋單元格,其實(shí)是Worksheet實(shí)例化的一個參數(shù),默認(rèn)值是False
6.在表格里添加好基本的數(shù)據(jù)標(biāo)題,我這里是X和Y坐標(biāo)
# 向表中添加數(shù)據(jù)標(biāo)題 sheet.write(0, 0, 'X') # 其中的'0-行, 0-列'指定表中的單元,'X'是向該單元寫入的內(nèi)容 sheet.write(0, 1, 'Y')
7.多次切割數(shù)據(jù)并定位好需要的部分保存進(jìn)Excel
#對文本內(nèi)容進(jìn)行多次切片得到想要的部分
n=1
with open('output.txt','r+') as fd:
for text in fd.readlines():
x=text.split(':')[2]
y=text.split(':')[3]
print (x.split('w'))
print (y.split('w'))
sheet.write(n,0,x.split('w')[0])#往表格里寫入X坐標(biāo)
sheet.write(n,1,y.split('w')[0])#往表格里寫入Y坐標(biāo)
n = n+1
# 最后,將以上操作保存到指定的Excel文件中
book.save('Output.xls')
現(xiàn)在定位到之前定義的文件位置,發(fā)現(xiàn)又多了一個Excel表格,打開Excel,想要的數(shù)據(jù)齊齊整整的排好躺在里面,舒服~


此時數(shù)據(jù)為文本格式,想要進(jìn)一步的處理請用Excel轉(zhuǎn)換成數(shù)字格式
源代碼:
https://github.com/julis-wolala/TextdataHandler
Reference:
http://www.dhdzp.com/article/230557.htm
總結(jié)
到此這篇關(guān)于教你用python提取txt文件中的特定信息并寫入Excel的文章就介紹到這了,更多相關(guān)python提取txt文件寫入Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python正則表達(dá)式中g(shù)roup與groups的用法詳解
本文主要介紹了Python正則表達(dá)式中g(shù)roup與groups的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
nlp自然語言處理學(xué)習(xí)CBOW模型類實(shí)現(xiàn)示例解析
這篇文章主要為大家介紹了nlp自然語言處理學(xué)習(xí)CBOW模型類實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
通過selenium抓取某東的TT購買記錄并分析趨勢過程解析
這篇文章主要介紹了通過selenium抓取某東的TT購買記錄并分析趨勢過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
深入了解python基于tkinter寫的畫圖項(xiàng)目
這篇文章主要為大家介紹了python基于tkinter寫的畫圖項(xiàng)目,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12
python 利用PyAutoGUI快速構(gòu)建自動化操作腳本
我們經(jīng)常遇到需要進(jìn)行大量重復(fù)操作的時候,比如:網(wǎng)頁上填表,對 web 版本 OA 進(jìn)行操作,自動化測試或者給新系統(tǒng)首次添加數(shù)據(jù)等,今天就利用PyAutoGUI構(gòu)建自動化操作腳本完成這些重復(fù)的需求2021-05-05
python部署chineseocr_lite的實(shí)現(xiàn)示例
本文主要介紹了python部署chineseocr_lite的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
基于Python實(shí)現(xiàn)自動化文檔整理工具
一個人可能會在計(jì)算機(jī)上存儲大量的照片、視頻和文檔文件,這些文件可能散落在不同的文件夾中,難以管理和查找。所以本文就來用Python制作一個自動化文檔整理工具吧2023-04-04
pytorch 實(shí)現(xiàn)變分自動編碼器的操作
這篇文章主要介紹了pytorch 實(shí)現(xiàn)變分自動編碼器的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05

