python实现文本文件转二进制文件(二进制序列化)
来源:互联网 发布:淘宝lol半价点券关键词 编辑:程序博客网 时间:2024/06/05 14:33
有一个项目,需要读大量的数据,数据都是txt格式的,读的过程比较慢,为了加快读取的速度,需要将文本文件转为二进制文件。
python代码如下;
#coding:utf-8#! /bin/pythonimport osimport sysimport os.pathimport pickleimport structdirroot = "F:\\feature_train\\"newdirroot="F:\\new\\"for dirnames in os.listdir(dirroot): print ("进入文件夹:" ) #print dirnames for dirname in os.listdir(dirroot+dirnames): #print dirname if dirname.split('.')[1]!='txt': continue file=open(dirroot+dirnames+'\\'+dirname,'r') filename=dirname.split('.')[0]+'.dat' if not os.path.exists(newdirroot+dirnames+'\\'): os.makedirs(newdirroot+dirnames+'\\') fileNew=open(newdirroot+dirnames+'\\'+filename,'wb') lines=file.readlines() for line in lines: curLine=line.split(' ') for i in range(len(curLine)): if len(curLine[i])==0: continue parsedata = struct.pack("f",float(curLine[i])) fileNew.write(parsedata) fileNew.write('\n') fileNew.close() file.close()
使用方法:修改dirroot为要读取的文件夹的目录路径,程序会遍历所有的文件夹,读取其中的txt文件。根目录下都是文件夹。
newdirroot为新的目录的路径,程序运行完以后会生成跟原来一样的目录和dat的二进制文件
txt文件里为float的格式的数据,可以根据情况修改。
C++ 读取二进制文件:
#include <iostream>#include <fstream>#include<stdio.h>using namespace std;int main(int argc, char** argv){printf("www\r\n"); //std::cout<<"www"<endl; float rfea[1024]={0};FILE *fp;fp = fopen("001.dat", "rb");if (fp != NULL){fread(rfea, 1024*sizeof(float), 1, fp);fclose(fp);}int i=0; for (i=0;i<30 ;i++ ) {printf("%f\r\n",rfea[i]); } return 0;}
0 0
- python实现文本文件转二进制文件(二进制序列化)
- 【转】文本文件,二进制文件,文本读写,二进制读写
- 文本文件转二进制文件的实现
- 文本文件序列化和二进制序列化
- 二进制文件文本文件和二进制数据
- 文本模式/二进制模式 && 文本文件/二进制文件(编码系列-3)
- 文本模式 二进制模式& 文本文件 二进制文件
- 文本文件与二进制文件的区别(转)
- 文本文件与二进制文件区别(转)
- 文本文件和二进制文件详解(转)
- 关于文本文件与二进制文件以及文本流与二进制流(终结版)
- 【转】文本文件与二进制文件区别
- Python二进制文件与十六进制文本文件转换
- 【Python】二进制文件与Base64编码文本文件转换
- 【Python】二进制文件与Base64编码文本文件转换
- 文本文件与二进制文件、文本方式与二进制方式
- 文本文件 二进制文件
- 文本文件二进制文件
- 行内元素和块状元素
- Activity的启动模式
- java设计模式-接口适配器模式
- JAVA后台验证身份证是否合法
- unity 一个物体相对另一个物体坐标系的偏转角度计算
- python实现文本文件转二进制文件(二进制序列化)
- 重新启航,拥抱u3d
- Visual Studio VS2010统计代码行数
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- 初识freemarker
- Linux CentOs7 下安装 redis
- c++primer第二遍阅读感悟(chap6)
- Apache Spark Jobs 性能调优(一)
- Android手机用Unity Profiler查看性能