Python过滤txt文件内重复内容

本文介绍了一个简单的Python脚本,用于去除文本文件中的重复内容,并将处理后的非重复内容保存到新的文本文件中。该方法使用Python标准库进行操作,易于理解和实现。
部署运行你感兴趣的模型镜像

Python过滤txt文件内重复内容,并将过滤后的内容保存到新的txt中

示例如下
原文件
这里写图片描述
处理之后的文件
这里写图片描述

直接上代码

# -*-coding:utf-8 -*-
f = open("1.txt", "rb")
n = f.read()
f.close()
m = n.split("\r\n")
print "m=",m
print m[1]
m1 = []
for i in xrange(len(m)):
    if not m[i] in m1:
        m1.append(m[i])
print "m1=", m1
filename = open("1.0.txt", "wb")
for i in xrange(len(m1)):
    filename.write(m1[i]+"\n")

可看到结果

这里写图片描述

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think> 我们有两个主要任务: 1. 将TXT文件内容按行取(每行作为独立内容) 2. 为每一行内容生成一个二维码 步骤分解: 步骤1:TXT文件 使用Python内置的open函数文件,按行分割,并去除每行末尾的换行符。 步骤2:处理每一行内容 我们可以遍历每一行,对每一行的字符串生成一个二维码。 步骤3:生成二维码 使用第三方库qrcode来生成二维码。需要先安装qrcode库:`pip install qrcode[pil]` 步骤4:保存二维码 为每一行生成一个二维码图片,并保存到指定目录。我们可以用行号或内容的一部分来命名图片,避免重复。 代码实现: 我们将取一个txt文件,例如“data.txt”,然后为每一行生成一个二维码图片,保存为“qrcode_行号.png”。 注意:如果一行内容为空,我们可以跳过或者特别处理。 参考引用[3]中提供了使用qrcode库生成二维码的基本代码。 下面给出完整的代码示例: </think> # 使用 PythonTXT 文件内容分行并批量生成二维码 下面我将介绍一个完整的解决方案,实现从 TXT 文件内容、分行处理,并为每行内容生成独立的二维码。 ## 解决方案概述 1. **TXT 文件** → 分割为行列表 2. **处理每行内容** → 清理多余空格/特殊字符 3. **生成二维码** → 为每行内容创建独立二维码 4. **保存结果** → 输出图片文件并添加元数据 ## 完整实现代码 ```python import qrcode import os from PIL import Image, ImageDraw, ImageFont def process_txt_to_qrcodes(input_file, output_dir='qrcodes'): """ 将TXT文件内容分行并生成二维码 参数: input_file: 输入的TXT文件路径 output_dir: 二维码输出目录(默认在当前目录创建qrcodes文件夹) """ # 确保输出目录存在 os.makedirs(output_dir, exist_ok=True) # TXT文件并分行 with open(input_file, 'r', encoding='utf-8') as file: lines = file.readlines() # 计数器用于命名文件 counter = 1 # 处理每一行并生成二维码 for line in lines: # 清理行内容(去除换行和两端空格) cleaned_line = line.strip() if not cleaned_line: # 跳过空行 continue # 创建二维码对象 qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_Q, # 高容错率 box_size=10, border=4, ) # 添加数据并生成二维码 qr.add_data(cleaned_line) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") # 添加文本标签(可选) img_with_text = add_text_label(img, cleaned_line, counter) # 保存文件 filename = os.path.join(output_dir, f"qrcode_{counter}.png") img_with_text.save(filename) print(f"已生成: {filename} - 内容: '{cleaned_line}'") counter += 1 def add_text_label(img, text, counter): """为二维码图片添加文本标签""" # 计算图片尺寸 width, height = img.size # 创建新图像(增加底部空间放文本) new_img = Image.new('RGB', (width, height + 30), color='white') new_img.paste(img, (0, 0)) # 添加序号标签 draw = ImageDraw.Draw(new_img) try: font = ImageFont.truetype("arial.ttf", 16) except: font = ImageFont.load_default() # 裁剪过长的文本(防止溢出) display_text = text if len(text) <= 30 else text[:27] + "..." # 绘制序号和文本 draw.text((10, height + 5), f"{counter}. ", fill="black", font=font) draw.text((40, height + 5), display_text, fill="black", font=font) return new_img if __name__ == "__main__": # 使用示例 - 替换为你的TXT文件路径 input_txt = "data.txt" # 你的TXT文件 process_txt_to_qrcodes(input_txt) ``` ## 使用说明 1. **准备输入文件**:创建一个名为 `data.txt` 的文件(或修改代码中的路径),每行包含要生成二维码的内容 ``` 第一行内容 第二行内容 这里是第三行文本 ... ``` 2. **运行脚本**:执行上述Python代码 3. **查看结果**:生成的二维码将保存在项目目录下的 `qrcodes` 文件夹中,命名格式为 `qrcode_1.png`, `qrcode_2.png`... ## 功能特点 1. **自动分行处理**:智能处理不同操作系统换行符(`\n` 或 `\r\n`) 2. **内容清理**:自动去除行首尾空白字符 3. **高容错率**:使用 `ERROR_CORRECT_Q` 级别(最高可恢复30%数据损坏)[^1] 4. **可视化标签**:每张二维码底部添加序号和内容摘要 5. **空行过滤**:自动跳过空行不生成二维码 6. **批量处理**:支持任意行数的文件处理 ## 技术原理 ### 1. 文件取与分行 使用Python内置文件操作TXT文件: ```python with open(input_file, 'r', encoding='utf-8') as file: lines = file.readlines() # 返回行列表 ``` 此方法自动处理不同操作系统的换行符差异(Windows: `\r\n`, Unix: `\n`)[^2] ### 2. 二维码生成核心参数 | 参数 | 描述 | 推荐值 | |------|------|--------| | `version` | 二维码尺寸(1-40) | 1(自动调整) | | `error_correction` | 容错等级 | ERROR_CORRECT_Q(25-30%容错) | | `box_size` | 每个"盒子"的像素数 | 10 | | `border` | 二维码边框宽度 | 4 | | `fill_color` | 二维码颜色 | black | | `back_color` | 背景颜色 | white | ### 3. 图像处理数学基础 二维码尺寸计算公式: $$尺寸 = (17 + 4 \times version) \times box\_size + 2 \times border \times box\_size$$ 例如:`version=1`, `box_size=10`, `border=4` 时: $$尺寸 = (17 + 4 \times 1) \times 10 + 2 \times 4 \times 10 = 210 + 80 = 290 \text{ 像素}$$ ## 应用场景示例 1. **批量产品标签**:将产品信息分行存储,生成对应二维码标签 2. **会议签到系统**:每行一个参会者信息,生成个人签到二维码 3. **教育材料**:为教材中的每道习题生成答案二维码 4. **仓库管理**:为每个库存物品生成信息二维码 ## 进阶扩展 ### 从Excel批量生成二维码 参考引用[4]的思路,可扩展为Excel处理: ```python import pandas as pd def excel_to_qrcodes(excel_file, sheet_name, column_name): """从Excel指定列内容并生成二维码""" df = pd.read_excel(excel_file, sheet_name=sheet_name) contents = df[column_name].tolist() for i, content in enumerate(contents): # 生成二维码代码(同上) # ... ``` ### 批量生成压缩包 添加自动打包功能: ```python import zipfile def create_zip(output_dir): """将生成的二维码打包为ZIP文件""" zip_name = os.path.join(os.path.dirname(output_dir), "qrcodes.zip") with zipfile.ZipFile(zip_name, 'w') as zipf: for file in os.listdir(output_dir): zipf.write(os.path.join(output_dir, file), file) ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值