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

[问题求助] 【己解决】想用python为文本添加点东西,可速度太慢,求助更快的算法

[复制链接]
发表于 2016-9-2 19:16:24 | 显示全部楼层
本帖最后由 949825667@qq.co 于 2016-9-2 21:34 编辑

无意中看到的,不知道算不算挖坟!
算是一种思路吧!效率还不错!
  1. open($IN,'<jd.txt');
  2. open($IN1,'<stem.txt');
  3. open($OUT,'>out.txt');
  4. while(<$IN1>){
  5.   ($C,$D)=split(/\s+/,$_);
  6.    $dic1{$C}=$D;
  7. }
  8. while(<$IN>){
  9.   ($A,$B)=split(/\s+/,$_);
  10. if(exists $dic1{$A}){
  11.         print $OUT "$A $B $dic1{$A}\n";
  12.         }else{
  13.   print $OUT "$A $B\n";
  14. }}
复制代码

评分

参与人数 1PB +6 收起 理由
523066680 + 6 格式还是可以更好看一些的

查看全部评分

发表于 2016-9-2 20:15:54 | 显示全部楼层
本帖最后由 523066680 于 2016-9-2 20:59 编辑

没有缩进,差评!

也写了一个
  • open $RA, "<:raw", "jd.txt";
  • open $RB, "<:raw", "stem.txt";
  • open $WRT, ">:raw", "out_jd.txt";
  • my $line;
  • my %hash;
  • while ($line = <$RB>)
  • {
  •     $line =~ /(.*?)\s+(\w+)/;
  •     $hash{$1} = $2;
  • }
  • while ($line = <$RA>)
  • {
  •     $line =~ s/\r?\n$//;
  •     $line =~ /^(.*?)\s+/;
  •     print $WRT $line;
  •     print $WRT "\t".$hash{$1} if (exists $hash{$1});
  •     print $WRT "\r\n";
  • }
  • close $RA;
  • close $RB;
  • close $WRT;
发表于 2016-9-2 20:32:08 | 显示全部楼层
回复 17# 523066680


    尽量养成好习惯!python就不用担心缩进问题!不缩进会提醒!
发表于 2016-9-2 21:03:15 | 显示全部楼层
本帖最后由 523066680 于 2016-9-2 21:04 编辑

回复 18# 949825667@qq.co


    你的输出结果不对,后面的信息没追加成功。
例如
  1. 挻        dmiy        dy
复制代码
发表于 2016-9-2 21:10:36 | 显示全部楼层
回复 19# 523066680


    我先删除代码,再检查一下
发表于 2016-9-2 21:35:11 | 显示全部楼层
本帖最后由 949825667@qq.co 于 2016-9-2 21:36 编辑

回复 20# 949825667@qq.co


    改了一下,可以了,和你的结果比对了一下!没啥问题了!
发表于 2018-5-21 15:39:51 | 显示全部楼层
本帖最后由 kongfuzhou 于 2018-5-21 15:43 编辑

先定义一个list把所有要写入txt的文本放进去,然后把list字符串链接成一个字符串,最后写入文件。速度还可以快5、6倍,本地测试300ms左右

例如:
  1. words = []
  2. words.append(lineStr)
  3. txt = "".join(words)
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 02:04 , Processed in 0.015988 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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