Python将.dat文件转换成.csv文件
在找数据的时候有时候会找到.dat文件,我发现了两种方式。
第一种很简单,是利用可以打开dat的软件进行转换,但是这种方式在只有一个数据的时候可以使用,数据集多时很不方便。
另一种就是使用python代码,可以将某一目录下的所有文件.dat转换为csv【其实不止这两种,xls、csv、dat等之间转换都可以,看自己的需求】
一、利用数据软件转换
1.sublime+excel
把下载的文件用sublime打开,删掉最上方的标题,另存为.txt文件,用excel打开,再次另存为.csv
2.SPSS
由于SPSS可以打开.dat文件,因此直接在spss中打开,再另存为
二、Python实现
原理:用Python实现的原理就是获取某一目录下的所有文件,分离成文件名和文件类型,当类型为dat的时候就创建一个同名的csv,把dat中的内容写进csv
import os
path_0 =r"D:\" #原文件目录
path_1 = r"D:\" #存放目录
filelist = os.listdir(path_0) #目录下文件列表
for files in filelist:
dir_path = os.path.join(path_0, files)
#分离文件名和文件类型
file_name = os.path.splitext(files)[0] #文件名
file_type = os.path.splitext(files)[1] #文件类型
#将.dat文件转为.csv文件
if file_type=='.dat': #可切换为.xls等
file_test = open(dir_path,'rb') #读取原文件
new_dir = os.path.join(path_1,str(file_name)+'.csv')
#print(new_dir)
file_test2 = open(new_dir,'wb') #创建/修改新文件
for lines in file_test.readlines():
lines=lines.decode()
str_data = ",".join(lines.split(' ')) #分隔符依据自己的文件确定
file_test2.write(str_data.encode("utf-8"))
file_test.close()
file_test2.close()
运行结束没有报错的话就会看到相应目录下多出了对应名字的csv文件