
在文本处理任务中,我们经常需要将文件内容分解为更小的单元,例如单词。本指南将展示如何创建一个Python函数words_from_file(filename1, filename2),其核心功能是从filename1指定的输入文件中读取文本,将其中的每个单词提取出来,然后将这些单词逐行写入到filename2指定的新文件中。
实现此功能的关键在于正确地处理文件读写操作以及字符串的分割。以下是推荐的函数实现:
def words_from_file(filename1, filename2):
"""
读取指定文本文件,将其内容按单词拆分,并将每个单词逐行写入到另一个新文件。
参数:
filename1 (str): 输入文件的路径。
filename2 (str): 输出文件的路径。
"""
try:
# 以只读模式打开输入文件
with open(filename1, 'r', encoding='utf-8') as f_in:
# 以写入模式打开输出文件。注意:'w'模式会清空文件内容,
# 如果文件不存在则创建新文件。
with open(filename2, 'w', encoding='utf-8') as f_out:
# 逐行读取输入文件
for line in f_in:
# 使用split()方法将每行文本分割成单词。
# 默认情况下,split()会根据所有空白字符(空格、制表符、换行符等)进行分割,
# 并移除空字符串。
words = line.split()
# 遍历当前行的所有单词,并逐一写入输出文件
for word in words:
# 将每个单词写入文件,并在其后添加换行符,确保每个单词占据一行
f_out.write(word + '\n')
except FileNotFoundError:
# 捕获文件未找到的异常,并打印友好的错误信息
print(f"错误:文件 '{filename1}' 或 '{filename2}' 未找到。请检查文件路径。")
except Exception as e:
# 捕获其他可能的I/O或运行时错误
print(f"发生未知错误:{e}")
文件打开模式与上下文管理器 (with open(...)):
逐行读取 (for line in f_in):
立即学习“Python免费学习笔记(深入)”;
单词分割 (line.split()):
逐词写入 (f_out.write(word + '\n')):
错误处理 (try-except):
假设我们有一个名为 input.txt 的文件,内容如下:
It is a sample file. This is another line.
我们可以这样调用函数:
# 创建一个示例输入文件
with open("input.txt", "w", encoding='utf-8') as f:
f.write("It is a\n")
f.write("sample file.\n")
f.write("This is another line.\n")
# 调用函数处理文件
words_from_file("input.txt", "output.txt")
# 验证输出文件内容
print("\n--- output.txt 的内容 ---")
try:
with open("output.txt", "r", encoding='utf-8') as f_out:
print(f_out.read())
except FileNotFoundError:
print("输出文件未生成。")执行上述代码后,output.txt 文件内容将是:
It is a sample file. This is another line.
words_from_file函数提供了一个简洁而高效的方法来处理文本文件,实现单词的提取和逐行写入。通过理解文件操作的正确模式、字符串分割的机制以及适当的错误处理,我们可以构建出健壮且实用的文本处理工具。在实际应用中,可以根据具体需求进一步扩展此函数,例如添加标点符号过滤、大小写转换等功能。
以上就是Python实现文本文件单词逐行写入的函数指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号