Python | 分享10个txt自动化脚本,一定有你用得上的!

在日常工作和学习中,我们经常需要处理文本文件(.txt)。Python强大的文本处理能力使得我们可以轻松地进行读取、对比、过滤、合并、转换格式、提取数据、统计词频以及生成报告等操作。

本文将分享10个使用Python编写的自动化脚本,帮助新手更好地理解这些功能。

 

1. 读取文本文件

# 读取文本文件
def read_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        content 
= file.read()
    return content

file_content = read_file('example.txt')
print(file_content)

解释

这个脚本读取一个名为example.txt的文本文件,并打印出文件内容。对于程序员来说,这是一项基本技能;而对于普通用户,比如在工作中需要查阅某些文档时,这样的脚本非常实用。

2. 文本文件对比

# 对比两个文本文件是否相同
def compare_files(file1, file2):
    with open(file1, 'r', encoding='utf-8') as f1, open(file2, 'r', encoding='utf-8') as f2:
        return f1.read() == f2.read()

are_equal = compare_files('file1.txt''file2.txt')
print(f"两个文件是否相同: {are_equal}")

解释

这个脚本比较了两个文本文件的内容是否相同。对于开发者来说,确保不同版本的文档或代码不发生意外更改十分重要;对普通用户而言,如检查备份文件是否一致也是一项常见需求。

 

3. 过滤特定内容

# 过滤掉包含特定单词的行
def filter_lines(file_path, keyword):
    with open(file_path, 'r', encoding='utf-8') as file:
        lines = [line for line in file if keyword not in line]
    return lines

filtered_lines = filter_lines('example.txt''不需要的内容')
print("过滤后的内容:")
for line in filtered_lines:
    print(line.strip())

解释

这个脚本从文本文件中筛选出不包含特定关键词的行。例如,如果你正在处理一个长长的日志文件,想要排除掉某些无关记录,使用这个脚本可以高效完成。

 

4. 合并多个文本文件

# 合并多个文本文件
def merge_files(output_file, *input_files):
    with open(output_file, 'w', encoding='utf-8') as outfile:
        for file_name in input_files:
            with open(file_name, 'r', encoding='utf-8') as infile:
                outfile.write(infile.read() + "\n")

merge_files('merged.txt''file1.txt''file2.txt''file3.txt')
print("文件合并成功!")

解释

这个脚本将多个文本文件合并成一个新的文件。在实际应用中,比如收集多个项目的进度报告,将它们整合为一个文档,这个脚本非常有用。

 

5. 转换文件编码

# 转换文本文件编码
def convert_encoding(input_file, output_file, target_encoding='utf-8'):
    with open(input_file, 'r', encoding='gbk') as infile:
        content = infile.read()
        
    with open(output_file, 'w', encoding=target_encoding) as outfile:
        outfile.write(content)

convert_encoding('old_file.txt''new_file.txt''utf-8')
print("文件编码转换成功!")

解释

该脚本将文件从一种编码格式(如GBK)转换为另一种(如UTF-8)。对于程序员来说,处理国际化文本时经常需要考虑编码问题;而普通用户在打开某些特殊格式文档时也可能遇到编码错误。

6. 提取特定数据

# 提取以特定标记开头的行
def extract_data(file_path, prefix):
    with open(file_path, 'r', encoding='utf-8') as file:
        extracted = [line for line in file if line.startswith(prefix)]
    return extracted

data_lines = extract_data('example.txt''重要信息:')
print("提取的数据:")
for line in data_lines:
    print(line.strip())

解释

此脚本从文本文件中提取所有以“重要信息:”开头的行。这在分析结构化数据时特别有用,比如从配置文件中获取设置。

7. 统计词频

from collections import Counter

# 统计文件中的词频
def count_words(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        words = file.read().split()
    return Counter(words)

word_count = count_words('example.txt')
print("词频统计:")
for word, count in word_count.items():
    print(f"{word}: {count}")

解释

该脚本统计文本文件中每个单词出现的次数。在撰写文章或分析文本时,了解常用词汇能够帮助我们优化表述。

 

8. 生成报告

# 生成简单的文本报告
def generate_report(data, report_file):
    with open(report_file, 'w', encoding='utf-8') as file:
        file.write("文本分析报告\n")
        file.write("=====================\n")
        for item in data.items():
            file.write(f"{item[0]}: {item[1]}\n")

report_data = {'项目A'10'项目B'15}
generate_report(report_data, 'report.txt')
print("报告生成成功!")

解释

该脚本创建一个文本报告,列出项目及其对应的数据。这对任何需要总结信息的人来说都是很有用的,比如在团队会议上提供进展报告。

 

9. 替换文本内容

# 替换文本文件中的指定内容
def replace_text(file_path, old_string, new_string):
    with open(file_path, 'r', encoding='utf-8') as file:
        content = file.read()
        
    new_content = content.replace(old_string, new_string)
    
    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(new_content)

replace_text('example.txt''旧内容''新内容')
print("文本内容替换成功!")

解释

这个脚本将example.txt中所有的“旧内容”替换为“新内容”。在实际工作中,比如更新文档或修正信息时,这个功能非常方便。对于开发者而言,需要对代码中的某些字符串进行批量修改时,这也是一种常见操作。

 

10. 按行号提取数据

# 按指定行号提取内容
def extract_lines_by_numbers(file_path, line_numbers):
    with open(file_path, 'r', encoding='utf-8') as file:
        lines = file.readlines()
    
    extracted_lines = [lines[i - 1].strip() for i in line_numbers if 0 < i <= len(lines)]
    return extracted_lines

line_indices = [135]  # 提取第135行
extracted_content = extract_lines_by_numbers('example.txt', line_indices)

print("提取的行内容:")
for line in extracted_content:
    print(line)

解释

该脚本根据给定的行号从文本文件中提取相应的行内容。

例如,如果需要查看一份报告的特定页码的信息,可以使用这个脚本快速获取。对于用户和开发者来说,按行号提取内容是一种非常直观且有用的方法。

 

以上就是10个实用的Python自动化脚本示例,希望能帮助你在日常工作中提高效率!通过这些简单的例子,你可以看到Python处理文本文件的强大能力,也希望能激发你进一步探索的兴趣。

点赞