您好,登錄后才能下訂單哦!
如何用python提取txt文件中的特定信息并寫入Excel,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
我有一個這樣的數據集叫test_result_test.txt,大概幾百上千行,兩行數據之間隔一個空行。
N:505904X:0.969wsecY:0.694wsec
N:506038X:4.246wsecY:0.884wsec
N:450997X:8.472wsecY:0.615wsec
...
現在我希望能提取每一行X:和Y:后面的數字,然后保存進Excel做進一步的數據處理和分析
就拿第一行來說,我只需要0.969 和0.694。每一行三個數字的具體位置是不確定的,因此不能用固定的列數去處理,剛好發現split函數能對文本進行切片,所以這里我們用這個函數來提取需要的數字信息。
split函數語法如下:
1、split()函數
語法:str.split(str="",num=string.count(str))[n]
參數說明:
str:表示為分隔符,默認為空格,但是不能為空('')。若字符串中沒有分隔符,則把整個字符串作為列表的一個元素
num:表示分割次數。如果存在參數num,則僅分隔成 num+1 個子字符串,并且每一個子字符串可以賦給新的變量
[n]:表示選取第n個分片
注意:當使用空格作為分隔符時,對于中間為空的項會自動忽略
于是對于我們這里的文本,我們可以先用“:”切片,把文本分成三份,比如對于第一行
以“:”進行切片得到
取第三個分片進行“w”切片,得到
這里的第一分片就是我們要的X坐標
最后我們分析一下思路:
首先定位文件位置讀取txt文件內容,去掉空行保存Excel準備工作,新建Excel表格,并編輯好標題為寫入數據就位對于每一行數據,首先用‘:'進行切片,再用‘w'切片得到想要的數字,然后寫入Excel保存
安裝好python模塊的visual studio 2017
包:os,xlwt
先import我們所需要的包
import os import xlwt
1.找到我們想要處理的文件,因此去到指定的位置,定位好文件
a = os.getcwd() #獲取當前目錄 print (a) #打印當前目錄 os.chdir('D:/') #定位到新的目錄,請根據你自己文件的位置做相應的修改 a = os.getcwd() #獲取定位之后的目錄 print(a) #打印定位之后的目錄
2.打開我們的txt文件查看下里面的內容(這一步可有可無)
#讀取目標txt文件里的內容,并且打印出來顯示 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')
執行完畢同個位置下多了一個txt文件
4. 創建一個Excel文件
#創建一個workbook對象,相當于創建一個Excel文件 book = xlwt.Workbook(encoding='utf-8',style_compression=0) ''' Workbook類初始化時有encoding和style_compression參數 encoding:設置字符編碼,一般要這樣設置:w = Workbook(encoding='utf-8'),就可以在excel中輸出中文了。默認是ascii。 style_compression:表示是否壓縮,不常用。 '''
5.創建一個sheet對象
# 創建一個sheet對象,一個sheet對象對應Excel文件中的一張表格。 sheet = book.add_sheet('Output', cell_overwrite_ok=True) # 其中的Output是這張表的名字,cell_overwrite_ok,表示是否可以覆蓋單元格,其實是Worksheet實例化的一個參數,默認值是False
6.在表格里添加好基本的數據標題,我這里是X和Y坐標
# 向表中添加數據標題 sheet.write(0, 0, 'X') # 其中的'0-行, 0-列'指定表中的單元,'X'是向該單元寫入的內容 sheet.write(0, 1, 'Y')
7.多次切割數據并定位好需要的部分保存進Excel
#對文本內容進行多次切片得到想要的部分 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坐標 sheet.write(n,1,y.split('w')[0])#往表格里寫入Y坐標 n = n+1 # 最后,將以上操作保存到指定的Excel文件中 book.save('Output.xls')
現在定位到之前定義的文件位置,發現又多了一個Excel表格,打開Excel,想要的數據齊齊整整的排好躺在里面,舒服~
此時數據為文本格式,想要進一步的處理請用Excel轉換成數字格式
關于如何用python提取txt文件中的特定信息并寫入Excel問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。