吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2675|回复: 15
收起左侧

[求助] 麻烦大神帮忙编写一个整理文本文档的脚本或程序,谢谢!

[复制链接]
Axian86 发表于 2019-7-4 22:17
需要整理的文本及过程如下:
9011 L:901=0,901-1W=0 !
9011 H:901=0,901-1W=1,901-2W=1,1B-1D=0,1B-2D=0,10IM-D=0,901-D=0,14126=0 !2:901=0 !

在文本中进行逐行搜索,搜索到  !2: 这三个字符的时候,在2前进行回车换行,然后在2前面自动插入L或者H前的数字编号。 怕表述不清楚,截了2个图片供大神参考,麻烦大神帮忙写个自动整理的脚本程序,谢谢!

示例:整理前的文本
修改前.jpg

整理后的文本:
整理后.jpg

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
52pojieggh 发表于 2019-7-4 22:33
提示: 作者被禁止或删除 内容自动屏蔽
御花猫 发表于 2019-7-4 22:45
Homely 发表于 2019-7-5 00:22
test.gif

就用了一个精益模块其他均是自带的,模块+源码下面有。看得懂自己改一下就行了很简单的


下载地址
https://www.lanzouj.com/i4uf25g
密码:52pj
橘冬 发表于 2019-7-5 00:37
[root@Mahone ~]# sed -i '/![0-9].*!$/s/\(^[0-9]\+[[:space:]]\+\).*!2/&\n\12/'p <文件名字>
[root@mahone ~]# sed -i 's/\(.*\)[0-9]$/\1/' <文件名字>

楼主试试我这个
kge369 发表于 2019-7-5 11:30
原文件是1.txt   新文件是2.txt

[Python] 纯文本查看 复制代码
with open('2.txt','w+') as f1:
        pass
with open("1.txt",'r+') as f:
    lines = f.readlines()
    for line in lines:
        with open("2.txt",'a+') as f2:
            #每行line来判断url.find("!2:") > 0:,然后写入新文件
            if line.find("!2:") > 0:
                s = line.find("!2:") #找到该字段所在位置s
                end = line[s+1:]     #代表是2:之后的字符串(每行)
                first = line[:s+1]   #代表!号之前的字符串(每行)
                head = line.split(" ") #对当前行进行空格split,得出首字符串
                #写入文件
                f2.write(first + "\n" + head[0] + " "  + end )
            else:
                #不匹配到就直接写
                f2.write(line)
print("done")


运行前后
1.jpg
2.jpg

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Axian86 + 1 + 1 谢谢@Thanks!

查看全部评分

cosct 发表于 2019-7-5 12:18
源文件为read.txt,处理后文件为write.txt(每行字符数不能超过1024个)

[C] 纯文本查看 复制代码
#include <stdio.h>
#include <string.h>

#define _CRT_SECURE_NO_WARNINGS
#pragma warning (disable: 4996)

int main()
{
    FILE* fp;
    FILE* fd;
    char rowNum[5];
    char buf[1024];
    char newbuf[1024];
    int i;

    //读取文件
    fp = fopen("read.txt", "r");
    if (fp == NULL)
    {
        printf("文件读取失败\n");
        return -1;
    }
    else
    {
        printf("正在读取文件...\n");
    }

    //写入文件
    fd = fopen("write.txt", "w");
    if (fd == NULL)
    {
        printf("写入文件打开失败\n");
        return -2;
    }
    else
    {
        printf("正在写入文件...\n");
    }

    //读取每一行
    while (fgets(buf, sizeof(buf), fp) != NULL)
    {

        //读取行号
        strncpy(rowNum, buf, 4);
        rowNum[4] = '\0';

        //判断是否要换行
        for (i = 5; buf[i] != '\0'; i++)
        {
            if (buf[i] == '!' && buf[i + 1] == '2' && buf[i + 2] == ':')
                break;
        }

        if (buf[i] != '\0')
        {
            strncpy(newbuf, buf, i + 1);
            newbuf[i + 1] = '\n';
            newbuf[i + 2] = '\0';
            strcat(newbuf, rowNum);
            strcat(newbuf, " ");
            strcat(newbuf, buf + i + 1);

            fputs(newbuf, fd);
        }
        else
        {
            fputs(buf, fd);
        }

        //清空buf
        memset(buf, 0, sizeof(buf));
    }

    //关闭
    fclose(fp);
    fclose(fd);

    return 0;
}


源码及程序(win64):
链接: https://pan.baidu.com/s/1SilvekavrhzW2i6Rxdmmjw 提取码: 4d4b

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Axian86 + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| Axian86 发表于 2019-7-5 12:29
kge369 发表于 2019-7-5 11:30
原文件是1.txt   新文件是2.txt

[mw_shl_code=python,true]with open('2.txt','w+') as f1:

小白问一下,这个python代码是怎么用的?
kge369 发表于 2019-7-5 12:33
Axian86 发表于 2019-7-5 12:29
小白问一下,这个python代码是怎么用的?

下午我打包成exe文件再发上来,

代码就是安装python环境,直接用源码运行,用源码可以按照自己的需求随便修改!

但是打包成exe就固定了,就不能随便修改了
 楼主| Axian86 发表于 2019-7-5 16:01
kge369 发表于 2019-7-5 12:33
下午我打包成exe文件再发上来,

代码就是安装python环境,直接用源码运行,用源码可以按照自己的需求 ...

那谢谢大神打包exe,我对这个编码之类的是完全不懂,谢谢!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 04:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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