在文本处理任务中,我们经常需要将文件内容分解为更小的单元,例如单词。本指南将展示如何创建一个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号