吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 450|回复: 20
收起左侧

[经验求助] 求删除txt文件的每一行指定文字的方法

[复制链接]
zghnmzd 发表于 2024-10-21 12:25
200吾爱币
求删除txt文件的每一行指定文字的方法
例如:
e75c3f5ae9061a756b9480aa59e4d41c#0c7344fb8ef7584540c7a29fd388eb88#75067966#宋词选_1_14684786.zip
88ab8b95708afa6f1d4eadd03f498282#7fc8b388edea4ef50a20f235068d1263#37610046#实用唐宋词谱_1_14636666.zip
4140540420a984dd263699f1c88f579d#98f3fa61734c0105a53c44f5ce6f5167#43081899#去看看宋词诞生的地方_1_14692444.zip
d8f8ac7d516fdffbf4b37cd4531655b0#b22c72f4ff44c4f15f2981c1b2277a10#39859916#中国古典文学精品普及读本  唐宋词_1_14583750.pdf
973e9337c8c23611579cc829421ae6cc#5b1b2427b2871c7d8cda2901be62d1f2#114964151#唐诗宋词鉴赏辞典_1_14613454.zip
结果:
14684786.zip
14636666.zip
14583750.pdf
14613454.zip
每一行只保留最后12字符。
需要方法,或者免费软件。
通过百度网盘分享的文件:红楼梦相关.rar
链接:https://pan.baidu.com/s/14GzHt4zWYMXlIv913b_itw
提取码:wwth


谢谢!

最佳答案

查看完整内容

https://www.123865.com/s/awGYjv-dRbrv?提取码:4XXi

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

flyer_2001 发表于 2024-10-21 12:25
flyer_2001 发表于 2024-10-21 12:32
wkfy 发表于 2024-10-21 12:37
这不是有手就行。给你两个方法,你喜欢用哪个都行。
[Python] 纯文本查看 复制代码
# 给定的字符串
import re

data = """e75c3f5ae9061a756b9480aa59e4d41c#0c7344fb8ef7584540c7a29fd388eb88#75067966#宋词选_1_14684786.zip
88ab8b95708afa6f1d4eadd03f498282#7fc8b388edea4ef50a20f235068d1263#37610046#实用唐宋词谱_1_14636666.zip
4140540420a984dd263699f1c88f579d#98f3fa61734c0105a53c44f5ce6f5167#43081899#去看看宋词诞生的地方_1_14692444.zip
d8f8ac7d516fdffbf4b37cd4531655b0#b22c72f4ff44c4f15f2981c1b2277a10#39859916#中国古典文学精品普及读本  唐宋词_1_14583750.pdf
973e9337c8c23611579cc829421ae6cc#5b1b2427b2871c7d8cda2901be62d1f2#114964151#唐诗宋词鉴赏辞典_1_14613454.zip"""


def 方法1(data):
    # 使用正则表达式匹配文件名
    pattern = r'[^#]+\.zip|[^#]+\.pdf'

    # 找到所有匹配的文件名
    file_names = re.findall(pattern, data)

    # 提取每个文件名的最后14个字符
    last_14_chars = [name[-12:] for name in file_names]

    # 输出结果
    for name in last_14_chars:
        print(name)



def 方法2(data):

# 分割字符串为行
    lines = data.splitlines()

    # 提取每行最后14个字符
    file_names = []
    for line in lines:
        # 按照#分割字符串,获取最后一个部分
        parts = line.split('#')
        if parts:
            file_name = parts[-1]  # 最后一个部分是文件名
            last_14_chars = file_name[-12:]  # 获取最后14个字符
            file_names.append(last_14_chars)
    # 输出结果
    for name in file_names:
        print(name)


# 调用方法:
方法1(data)
# 调用方法:
方法2(data)

免费评分

参与人数 1吾爱币 +1 收起 理由
zghnmzd + 1 谢谢@Thanks!

查看全部评分

onlooker567 发表于 2024-10-21 12:40
复制到excel,点击数据-选中要修改的文本-点击分列-点击分隔符号-点击其他-键盘输入(_)
sgywzx 发表于 2024-10-21 12:42
onlooker567 发表于 2024-10-21 12:40
复制到excel,点击数据-选中要修改的文本-点击分列-点击分隔符号-点击其他-键盘输入(_)

这个比较简单而且快
wkfy 发表于 2024-10-21 12:47
给你修改成批量版本了,最终结果是文件名_过滤.txt
把你要过滤的所有文件放  D:\红楼梦相关  这个文件夹里,然后在python中运行脚本就可以了。
不管多少个文件都自动处理。

[Python] 纯文本查看 复制代码
import os
import re

# 指定文件夹路径,这里你自己修改成真实的路径,注意\号需要写成\\
folder_path = r"D:\\红楼梦相关"

# 获取所有的txt文件
txt_files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]

# 正则表达式模式
pattern = r'[^#]+\.zip|[^#]+\.pdf'

# 遍历每个txt文件
for txt_file in txt_files:
    # 构造文件的完整路径
    file_path = os.path.join(folder_path, txt_file)
    
    # 读取文件内容
    with open(file_path, 'r', encoding='utf-8') as file:
        data = file.read()
    
    # 使用正则表达式匹配文件名
    file_names = re.findall(pattern, data)

    # 提取每个文件名的最后12个字符
    last_14_chars = [name[-12:] for name in file_names]

    # 生成新的文件名
    new_file_name = f"{os.path.splitext(txt_file)[0]}_过滤.txt"
    new_file_path = os.path.join(folder_path, new_file_name)

    # 将结果写入新的文件
    with open(new_file_path, 'w', encoding='utf-8') as new_file:
        for name in last_14_chars:
            new_file.write(name + '\n')

    print(f"Processed {txt_file} -> {new_file_name}")
Shiliu2713 发表于 2024-10-21 13:28
sed 命令
[PowerShell] 纯文本查看 复制代码
sed "s/.*_//" 1.txt > 2.txt"


https://x.ws59.cn/f/fdke86o1ht9 复制链接到浏览器打开
这里做了一个批处理 放到txt目录下操作
操作前建议备份原始文件

免费评分

参与人数 1热心值 +1 收起 理由
zghnmzd + 1 谢谢@Thanks!

查看全部评分

bubuding 发表于 2024-10-21 13:31
分隔符文本处理器:https://www.52pojie.cn/thread-1903132-1-1.html

提示:先把文件改为ANSI编码格式,然后在分隔符文本处理器中进行导入。分隔符填写"_",然后使用"指定列删除"功能,删除前几列即可。所见即所得。
myao 发表于 2024-10-21 13:32
使用正则表达式替换,查找目标:.*?(\d+\.\w+|\.\w+)$ ,替换为:\1
可以用Notepad3,Notepad++,emeditor等。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-15 02:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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