科學計算中,輸入數據文件格式轉換是經常遇到的問題。由於數據輸入人員輸入方法不標准而產生的各種包括制表符(\t),空格混用等更是常見問題。這里介紹一個小實例,該例子讀入一個文本文件(txt),這個文本文件中包含類似以下格式的數據:
date d1 d2, error ave name
2017/1/1 nan nan nan nan nan
2017/1/2nan nan nan nannan
2017/1/3 nan nan nan nan nan
這些數據之間是用空白字符分隔的,但空白字符包括了不空倍數的空格,有的還包含制表符,這給進一步的數據分析帶來困難,現通過python的字符串函數,正則等應用將數據格式轉換為標准的CSV格式。代碼如下:
import re f2 = open('Rn.csv', 'w') with open('data1.txt', 'r') as f1: for i in f1: line = re.split('\s+', i) #將字符串i以全部空白字符為分割符,將其分割成一個字符列表 new_line = ','.join(line) # 將字符列表用','拼接成一個新字符串 new_line = new_line.strip(',') # 將新字符串尾部產生的','去掉 print(new_line) f2.write(new_line) f2.close()
轉換后的Rn.csv文件中數據格式如下:
date,d1,d2,error,ave,name
2017/1/1,nan,nan,nan,nan,nan
2017/1/2,nan,nan,nan,nan,nan
2017/1/3,nan,nan,nan,nan,nan
