python批量处理文件大量TXT文件

如何快速批量的合并txt文件_百度经验
&&&&&&&&&电脑软件如何快速批量的合并txt文件?听语音1234567
百度经验:jingyan.baidu.com处理txt文件,有时候需要把大量的txt文件合并成一个文件,方便阅读或者分析,小编教大家一个非常快速的方法。百度经验:jingyan.baidu.comtxt合并工具百度经验:jingyan.baidu.com1在浏览器上搜索txt文件合并器,在太平洋下载中心下载,并且按照步骤安装。有个txt文件合并器,以后合并就方便多了。2安装好后,打开txt文件合并器,点击添加。3找到你要进行合并的文件,按住Ctrl键,用鼠标左键可进行批量选择。选好之后点击打开。4在合并后文件后面输入合并后文件名称,例如合并.txt5点击预览,查看合并后的文件是否是你想要的文件,然后点击预览下面的合并。61秒左右,左下角显示合并成功,就表示合并完成了。7回到原来放置文件的地方,就会多了一个合并的txt文件。END百度经验:jingyan.baidu.com文件多的话可以先把文件放在一个文件夹里,防止遗漏。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(4)已投票(4)有得(1)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验11041热门杂志第1期你不知道的iPad技巧3788次分享第1期win7电脑那些事6639次分享第2期新人玩转百度经验1410次分享第1期Win8.1实用小技巧2651次分享第1期小白装大神1918次分享◆请扫描分享到朋友圈一个用matlab批量处理txt文件数据的例子
刚刚完成的一个批量处理txt文件的算法,思路比较简单,但有txt文件中混合着数值和字符。所以在完成数值提取遇到了一定困难。但最终,在鸟贤协助下用了一种比较笨的方法做出来了,算法的执行效率不算高,接下来有时间我会将它改写成
并行计算的版本。
所处理的数据是1961年到2010年间的全国温度数据,总计600个txt,需要将txt中混杂的的数值数据提取出来,并且去除一部分无效数据,然后再做其他的数据分析工作。主要代码如下,已经做好了注释,复制并改掉相应于的文件属性,可以直接运行。
function [varargout]= htemperature(varargin)
%因为温度统计文件有多600个,且命名具有一定的规律性,所以可以使用循环读取文件
time=196100;
for f = 1:12 %对600个文件进行循环
sname = 'D:\mean\SURF_CLI_CHN_TEM_MON_GRID_0.5-MEAN-';
if mod(f,12)==1 & f&1
time = time +89;%跳到第二年1一月份
time=time+1;
sname=[sname num2str(time)];
sname=[sname '.txt']; %此时sname就是一个完整的路径与文件名;
% & & hcell =
&importdata(sname);%将产生两个数值和非数值元胞,此处不用textread的原因是列数太多
% & & fmatrix =
原文件分布不规则,弃用元胞,且textread,importdata读取函数皆要求数据分布规则故采用
r=0;%计数器
hcell=importdata(sname);%读入数据
[m,n]=size(hcell.textdata);%统计包含字符的向量
j=1;%字符转数值的计数器
for x = 1:m
htext = cell2mat(hcell.textdata(x));
hdata=str2num(htext);%如果是字符,执行之后将变成空矩阵
if ~ischar(hdata) & ~isempty(hdata)
textvector(j) =
%至此完成字符元胞的数值化
for y = 1:6
hcell.data(y)=[];
%完成图像属性信息的删除
%将两个向量完成合并
fvector=[textvector hcell.data'];
% for i=1:m
b=cell2mat(a.textdata(i));
% & & c=str2num(b);
% & & if ~ischar(c) &
~isempty(c) & c
for i =1:size(fvector,2)
if fvector(i)~=-99 & fvector(i)~=-198
k=k+fvector(i);
meanvector(f)=
sumvector(f)=k;
timevector(f)=
meanvector
timevector
xlswrite('D:\dd.xls',meanvector','C2:C13')
xlswrite('D:\dd.xls',timevector'kh','B2:B13')%写入到excel
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。_随心文件批处理2.3绿色版(用于批量处理文本内容工具)下载_华彩软件站
华彩软件站-绿色软件下载站!
热门搜索:
随心文件批处理2.3绿色版(用于批量处理文本内容工具)
绿色免费软件;文件名称批处理修改;文件扩展名批处理修改;文件或目录属性批处理修改;文件或目录日期批处理修改;文本文件处理工具;用于批量处理文本内容;包括排序,统计,删除,模式匹配等实用功能;内有大量的变量与函数,功能前所未有的强大;日常必备工具之一;
随心文件批处理2.3绿色版(用于批量处理文本内容工具)
高速下载器通道
下载不了?|苹果/安卓/wp
积分 94, 距离下一级还需 51 积分
权限: 自定义头衔
道具: 涂鸦板, 彩虹炫, 雷达卡, 热点灯, 显身卡, 匿名卡, 金钱卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 变色卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
苦逼签到天数: 12 天连续签到: 1 天[LV.3]偶尔看看II
15:34:18 上传
每一个TXT里的内容如图,第一列是年份,第二列是数值,请问怎么求每年对应的数值的最大值?每年对应的行数都不同。
15:37:24 上传
这是同一个文件夹下的待处理TXT文件,每个TXT的行数都不同。请问大神,如何批量读入求每个TXT每年的最大值后再批量输出这么多个TXT呢?
发表于12楼
本帖最后由 nuomin 于
22:13 编辑
大概思路就是这样的,根据你的text文件格式进行调整就可以了dir_dta &- &E:/R_Work/Projects/SML/labor2007data&
file_list &- list.files(path=dir_dta,full.names=T)
varSave_func &- function(x){
& && && && && && && && && && && &table_x &- read.table(file=x,sep=& &,convert.factors=F)
& && && && && && && && && && && &tablename &- sub(&(.*\\/)([^.]+)(\\.[[:alnum:]]+$)&, &\\2&,x)
& && && && && && && && && && && &writedata &- data.frame(list(max=&max&,data=max(table_x$V2)))
& && && && && && && && && && && &write.table(writedata,file=x,append=TRUE)
}
invisible(lapply(file_list,FUN=varSave_func))复制代码
热心帮助其他会员
总评分:&论坛币 + 100&
论坛贴代码不好用了,贴好几次了
nuomin 发表于
大概思路就是这样的,根据你的text文件格式进行调整就可以了灰常感谢,弱弱的问句,我运行这个代码出错了,该肿么改呢?
错误提示:Error in read.table(file = x, sep = & &, convert.factors = F) :& && && && && && & unused argument (convert.factors = F)
hpxj 发表于
灰常感谢,弱弱的问句,我运行这个代码出错了,该肿么改呢?
错误提示:Error in read.table(file = x,&&...把convert.factors = F删了吧,最初用来读dta文件的,这个参数控制读value而不是lable。
nuomin 发表于
把convert.factors = F删了吧,最初用来读dta文件的,这个参数控制读value而不是lable。& dir_dta&-&e:/WWB/result/md1&
& file_list&-list.files(path=dir_dta,full.names=T)
& varSave_func &- function(x){
+& && && && && && && && & table_x &- read.table(file=x,sep=& &)
+& && && && && && && && & talename &- sub(&(.*\\/)([^.]+)(\\.[[:alnum:]]+$)&,&\\2&,x)
+& && && && && && && && & writedata &- data.frame(list(max=&max&,data=max(table_x$V2)))
+& && && && && && && && & write.table(writedata,file=x,append=TRUE)
+ }
& invisible(lapply(file_list,FUN=varSave_func))
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,&&:
&&line 6 did not have 20 elements复制代码
nuomin 发表于
把convert.factors = F删了吧,最初用来读dta文件的,这个参数控制读value而不是lable。好像出错了,错误提示在楼上,该咋改呢~~~~(&_&)~~~~
hpxj 发表于
好像出错了,错误提示在楼上,该咋改呢~~~~(&_贴两个txt文件做例子,我看看
这是我的txt文件压缩包@nuomin
21:07:16 上传
hpxj 发表于
这是我的txt文件压缩包@nuomindir_dta &- &E:/R_Work/Projects/myworkprogram/md1&
file_list &- list.files(path=dir_dta,full.names=T)
varSave_func &- function(xx){
& && && && && && && && && && && &table_xx1 &- scan(file=xx)
& && && && && && && && && && && &len &- length(table_xx1)
& && && && && && && && && && && &table_xx2 &- data.frame(list(x1=table_xx1[seq(1,len,2)],
& && && && && && && && && && && && && && && && && && && && &&&x2=table_xx1[seq(2,len,2)]))
& && && && && && && && && && && &writetext &- paste(&& && &&&max& && && & &,data=max(table_xx2$x2),collapse=&&)
& && && && && && && && && && && &write(x=writetext,file=xx,append=TRUE)
}
invisible(lapply(file_list,FUN=varSave_func))复制代码
(452.59 KB)
10:58:30 上传
处理完成的文件
初级热心勋章
初级热心勋章
中级热心勋章
中级热心勋章
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师博客分类:
在进行文本处理时,有时候需要从多级目录的多个文件中取出某些数据。命令行难以处理较复杂的过程,而高级语言虽然可以实现这种算法,但代码比较难写,再加上可能存在大文件,处理起来会更加困难。集算器支持游标读取大文件、脚本递归调用,易于实现批量文件处理,下面通过例子来看一下具体作法。
目录“D:\files”包含多级子目录,每个目录下都有许多文本格式的文件,从这些文件中读取指定的行(比如第二行),并将这些数据写入新的文件result.txt。目录D:\files的部分结构如下:
集算器代码:
首先定义一个参数path,初始值设为“D:\files”,这样就可以从该目录开始抽取数据。如下图:
A1=directory@p(path)
函数directory用来读出参数path中根目录的文件列表,选项@p表示文件名带全路径,部分结果如下:
A2=A1.(file(~).cursor@s())
这句代码用来以游标的方式依次打开A1中的文件。A1.(…)表示对A1的成员依次进行计算,~用来表示当前成员,函数file用来建立文件对象,函数cursor表示根据文件对象返回游标对象。
函数cursor的默认分隔符是tab,默认列名是_1,_2…_n,选项@s表示忽略分割符并将文件内容读成单列字符串,列名是_1。值得注意的是,这句代码只是建立游标对象,并没有读入数据,实际的读入动作会在遇到函数fetch时触发。A2的计算结果如下:
A3=A2.((~.skip(1),~.fetch@x(1)))
这句代码可以从A2的每个文件游标中读取第二行。A2.(…)表示对A2中的每个游标依次计算,(~.skip(1),~.fetch@x(1))表示依次计算括号内的表达式,并返回最后一个表达式的结果。其中~.skip(1)表示跳过一行,~.fetch@x(1)表示从当前位置读取一行(即第二条)并关闭游标,选项@x表示取完数据后自动关闭游标,~.fetch@x(1)就是括号运算符要返回的结果。
函数skip可以跳过多行,也可以通过参数来决定需要跳过几行。函数fetch也可以取出多行,比如从第10行开始取2行,可以写作~.skip(10),fetch@x(2)。
A3的部分计算结果如下:
A4=A3.union()
这句代码将A3的计算结果合并。函数union执行并集操作,比如对两个集合[1,2]和[2,3]计算并集,代码是[12],[2,3]].union(),结果等于[1,2,3]。函数union会去除重复数据,如果想保留重复,应该使用函数conj(也叫合集)。A4的部分结果如下:
A5=file("d:\\result.txt").export@a(A4)
这句代码用来将A4追加到result.txt中。函数export执行写文件操作,选项a表示追加。
上述A1-A5已经完成了当前目录里文件的抽取,下面只要取出当前目录的子目录,并递归调用本脚本即可。
A6=directory@dp(path)
函数directory可以取出当前目录的所有子目录,选项d表示取目录名,选项p表示取全路径。对于目录D:\files,A6的计算结果如下:
A7=A6.(call("c:\\readfile.dfx",~))
这句代码依次对A6中的成员(各子目录)进行计算,算法是:调用集算器脚本c:\\readfile.dfx,并将当前成员(子目录)作为入口参数。注意:readfile.dfx就是本脚本的文件名。
通过A7的递归调用,集算器就可以对D:\files下的多级目录进行批量抽取,打开result.txt可以看到最终计算结果:
datamachine
浏览: 92149 次
不错,学习了!
说了半天加个字段就好了嘛。。。。。。
既然用mongodb 还是赶紧丢掉sql设计范式吧
m 写道收费的吧???不是开源的吧??有免费 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 正隆文件批量处理 的文章

 

随机推荐