当前位置: 首页 > news >正文

Python中的八个TXT文件自动化处理脚本:提升工作效率的必备工具

在数据处理、文本分析或日常工作中,我们经常需要处理TXT文件。Python作为一种强大的编程语言,提供了丰富的库和工具来帮助我们实现TXT文件的自动化处理。以下是八个实用的Python脚本,涵盖了TXT文件处理的常见任务,无论你是初学者还是经验丰富的开发者,都能从中找到有用的工具。

1. 合并TXT文件

当你有多个TXT文件需要合并成一个时,这个脚本非常有用。它读取指定目录下的所有TXT文件,并将它们的内容合并到一个新的TXT文件中。

import os  def merge_txt_files(input_dir, output_file):  with open(output_file, 'w', encoding='utf-8') as outfile:  for filename in os.listdir(input_dir):  if filename.endswith(".txt"):  with open(os.path.join(input_dir, filename), 'r', encoding='utf-8') as infile:  outfile.write(infile.read())  outfile.write("\n")  # 可选:在文件之间添加换行符  # 使用示例  
merge_txt_files('path/to/input/dir', 'path/to/output/merged.txt')
2. 分割TXT文件

有时,一个大的TXT文件需要被分割成多个较小的文件。这个脚本可以根据指定的行数或文件大小来分割TXT文件。

def split_txt_file(input_file, output_dir, lines_per_file=1000):  if not os.path.exists(output_dir):  os.makedirs(output_dir)  count = 1  with open(input_file, 'r', encoding='utf-8') as infile:  lines = infile.readlines()  for i in range(0, len(lines), lines_per_file):  with open(os.path.join(output_dir, f'split_{count}.txt'), 'w', encoding='utf-8') as outfile:  outfile.writelines(lines[i:i + lines_per_file])  count += 1  # 使用示例  
split_txt_file('path/to/input/large.txt', 'path/to/output/dir')
3. 搜索并替换文本

在TXT文件中搜索并替换特定的文本是一个常见的任务。这个脚本允许你指定要搜索和替换的文本,以及要处理的文件。

def replace_text_in_file(file_path, old_text, new_text):  with open(file_path, 'r', encoding='utf-8') as file:  file_data = file.read()  new_data = file_data.replace(old_text, new_text)  with open(file_path, 'w', encoding='utf-8') as file:  file.write(new_data)  # 使用示例  
replace_text_in_file('path/to/file.txt', 'old_text', 'new_text')
4. 统计TXT文件中的单词数

这个脚本可以统计TXT文件中的单词数量,以及每个单词出现的次数。

from collections import Counter  
import re  def count_words_in_file(file_path):  with open(file_path, 'r', encoding='utf-8') as file:  words = re.findall(r'\b\w+\b', file.read().lower())  word_counts = Counter(words)  return word_counts  # 使用示例  
word_counts = count_words_in_file('path/to/file.txt')  
for word, count in word_counts.items():  print(f'{word}: {count}')
5. 删除TXT文件中的空行

这个脚本可以删除TXT文件中的空行,使文件更加整洁。

def remove_blank_lines(file_path):  with open(file_path, 'r', encoding='utf-8') as infile:  lines = infile.readlines()  lines = [line for line in lines if line.strip()]  with open(file_path, 'w', encoding='utf-8') as outfile:  outfile.writelines(lines)  # 使用示例  
remove_blank_lines('path/to/file.txt')
6. 添加行号到TXT文件

有时,我们需要在TXT文件的每一行前添加行号。这个脚本可以完成这个任务。

def add_line_numbers(file_path):  with open(file_path, 'r', encoding='utf-8') as infile:  lines = infile.readlines()  with open(file_path, 'w', encoding='utf-8') as outfile:  for i, line in enumerate(lines, start=1):  outfile.write(f'{i}: {line}')  # 使用示例  
add_line_numbers('path/to/file.txt')
7. TXT文件转CSV

如果TXT文件的内容是按某种格式排列的,你可以将其转换为CSV文件,以便进行进一步的数据分析。

import csv  def txt_to_csv(txt_file, csv_file, delimiter=','):  with open(txt_file, 'r', encoding='utf-8') as infile:  lines = infile.readlines()  with open(csv_file, 'w', newline='', encoding='utf-8') as outfile:  writer = csv.writer(outfile)  for line in lines:  writer.writerow(line.strip().split(delimiter))  # 使用示例  
txt_to_csv('path/to/file.txt', 'path/to/output.csv', '\t')  # 假设TXT文件使用制表符作为分隔符
8. CSV转TXT

与上一个脚本相反,这个脚本将CSV文件转换为TXT文件。

def csv_to_txt(csv_file, txt_file, delimiter=','):  with open(csv_file, 'r', encoding='utf-8') as infile:  reader = csv.reader(infile)  lines = [delimiter.join(row) for row in reader]  with open(txt_file, 'w', encoding='utf-8') as outfile:  outfile.writelines(line + '\n' for line in lines)  # 使用示例  
csv_to_txt('path/to/input.csv', 'path/to/output.txt')

这些脚本涵盖了TXT文件处理的多个方面,从基本的合并、分割、搜索替换到高级的数据转换和统计。无论你是需要处理大量的日志文件、数据报告还是简单的文本文件,这些脚本都能帮助你提高工作效率。根据你的具体需求,你可以直接使用这些脚本,或者在其基础上进行修改和扩展。

相关文章:

  • 62.【C语言】浮点数的存储
  • unity_Occlusion_Culling遮挡剔除学习
  • 从两个 Excel 表格中提取相关信息,并根据学生的 学号 和 姓名 将第一个表格中的成绩数据填充到第二个表格中(附Python代码)
  • 什么是 JWT?它是如何工作的?
  • vue数组根据某些条件进行二次切割
  • 1.2.1 HuggingFists安装说明-Linux安装
  • 如何用Prometheus监控禁用了Actuator的SpringBoot?
  • 渗透测试--文件上传常用绕过方式
  • Python编码系列—Python责任链模式:打造灵活的请求处理流程
  • 鸿蒙HarmonyOS之封装Http请求工具类
  • Llama微调以及Ollama部署
  • MRC接收机
  • 【数字图像处理】小白也能懂,最浅显方式手撕直方图均衡化(附python实现)
  • python 02 List
  • 药物临床试验机构备案信息数据库查询方法(支持数据下载)
  • 分享一款快速APP功能测试工具
  • 时间复杂度分析经典问题——最大子序列和
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • android图片蒙层
  • exports和module.exports
  • express如何解决request entity too large问题
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript函数式编程(一)
  • java正则表式的使用
  • leetcode-27. Remove Element
  • maven工程打包jar以及java jar命令的classpath使用
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Sublime Text 2/3 绑定Eclipse快捷键
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Vue2.x学习三:事件处理生命周期钩子
  • 翻译--Thinking in React
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 推荐一个React的管理后台框架
  • 微信小程序设置上一页数据
  • const的用法,特别是用在函数前面与后面的区别
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​力扣解法汇总946-验证栈序列
  • #php的pecl工具#
  • #pragma multi_compile #pragma shader_feature
  • (~_~)
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (不用互三)AI绘画工具应该如何选择
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (七)Activiti-modeler中文支持
  • (转)大型网站的系统架构
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .“空心村”成因分析及解决对策122344
  • .NET MVC之AOP
  • .net SqlSugarHelper