找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: qq253040425

[文本处理] [已解决]批处理怎样把不以引号开头的行合并到上一行行尾?

[复制链接]
 楼主| 发表于 2015-11-18 21:20:08 | 显示全部楼层
回复 57# 依山居

还有种情况,一行多个换行符

源:
"1","1
2","123","","201
5-10-31",
"1","1
2","12
3","","",

输出:
"1","1","123","","201-10-31",
"1","1","12","","",
 楼主| 发表于 2015-11-18 21:22:14 | 显示全部楼层
本帖最后由 qq253040425 于 2015-11-18 21:28 编辑

回复 44# CrLf

44L的代码

源:
"1","12","
123","","201
5-10-31",
"1","1
2","12
3","","",

这种情况也能处理成
"1","12","123","","2015-10-31",
"1","12","123","","",

到底怎么做到的 - -
 楼主| 发表于 2015-11-18 21:26:11 | 显示全部楼层
回复 60# CrLf


     - - 这段代码我完全懵圈了...看不懂,也不知道怎么改  
发表于 2015-11-18 22:07:29 | 显示全部楼层
回复 62# qq253040425


    通过计算 " 个数,来判断是否在引号内,只包含奇数个 " 时一直读取下一行直到闭合,然后接为一行输出

评分

参与人数 1技术 +1 收起 理由
依山居 + 1 1

查看全部评分

发表于 2015-11-18 22:45:50 | 显示全部楼层
回复 61# qq253040425


    更新了。你拿来测试1.7G的文件看看需要多久。给我贴下时间。我也想知道处理这种极别的数据需要多久。
发表于 2015-11-18 22:46:39 | 显示全部楼层
回复 64# CrLf


    应该是逗号内吧。
发表于 2015-11-18 22:53:26 | 显示全部楼层
回复 66# 依山居


    引号对
 楼主| 发表于 2015-11-18 22:55:07 | 显示全部楼层
回复 65# 依山居


    运行耗时: 140.09601283073425
 楼主| 发表于 2015-11-18 23:08:42 | 显示全部楼层
本帖最后由 qq253040425 于 2015-11-18 23:11 编辑

回复 65# 依山居

效率没原来快是因为对一整个文件进行操作的原因吗? 原来貌似是逐行的?

不过已知会出现状况的情况也都测试过,好像没啥问题了 !!

我有百度python的正则,但是那俩带正则的地方还是完全看不懂 ,求讲解 ~~~
发表于 2015-11-18 23:34:08 | 显示全部楼层
回复 69# qq253040425


    ()包围的是子组,替换为对应的\1\3子组,相当于是换行被替换掉了。
正则略难懂,慢慢看吧。我也是反复调试了很久。

不同语言和工具里的正则基本相同.都是用\来转义一些特殊符号。
 楼主| 发表于 2015-11-19 00:00:55 | 显示全部楼层
回复 60# CrLf


    我是小白!求完整代码~么么哒~1L有更新,要不要看看~
发表于 2015-11-19 07:29:50 | 显示全部楼层
本帖最后由 依山居 于 2015-11-19 08:58 编辑

回复 71# qq253040425


    列表解析的方法处理1.7G的文件有多快?你也贴个时间看看。
你的是固态硬盘?
 楼主| 发表于 2015-11-19 09:43:31 | 显示全部楼层
回复 72# 依山居

我在68L回复过啦

运行耗时: 140
   
果然这个read()的办法吃内存cpu和硬盘咩
 楼主| 发表于 2015-11-19 09:45:50 | 显示全部楼层
回复 72# 依山居


    我在监控,因为实际上一个文件夹下会有很多很多的del文件,一开始用32位的python读着读着就内存错误了,换64位的,倒是没报错了,但是我在内存并没有释放,一直在增大
发表于 2015-11-19 10:10:19 | 显示全部楼层
回复 73# qq253040425


    你改成19楼的代码是列表解析方式。

你给是57楼正则版的时间吧?

笨啊,处理大量数据当然也要考虑硬盘的读写速度,固态硬盘当然是比较快的。

程序后面加上txt=0 和newtxt=0 看看内存是不是会释放。
read() readlines()都是一次读取整个文件。
按我自己之前经验。行数多的文件,一次性读入整个文件进内存处理是比较快的。并且针对你的情况是无法直接改成逐读取行,并且整个处理逻辑都要改变。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 20:56 , Processed in 0.017140 second(s), 6 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表