python,实现将文档中全部空白字符用逗号替换
科学计算中,输入数据文件格式转换是经常遇到的问题。由于数据输入人员输入方法不标准而产生的各种包括制表符(\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