导入
读取文本文件
使用 with open() 上下文管理器安全地读取文本文件,显式处理字符编码,并高效遍历文件内容,而不会耗尽系统内存。
1filename = "message.txt" 2 3try: 4 # 我们尝试以 'read' 模式打开文件 5 with open(filename, 'r') as file_handle: 6 # 现在我们处于上下文管理器内部 7 print(f"文件打开成功: {file_handle}") 8 print(f"文件在代码块内是否已关闭?{file_handle.closed}") 9 10 # 在代码块外部,文件会自动关闭 11 print(f"文件现在是否已关闭?{file_handle.closed}") 12 13except FileNotFoundError: 14 print(f"错误:文件 '{filename}' 未找到。")
1# 假设 'message.txt' 存在且内容为:"Hello, World!" 2 3with open('message.txt', 'r') as file_handle: 4 content = file_handle.read() 5 print(f"文件内容:\n{content}")
1# 假设 'server_logs.txt' 包含数千行日志。 2filename = 'server_logs.txt' 3 4with open(filename, 'r') as log_file: 5 # 我们直接遍历文件对象 6 for line in log_file: 7 # 我们逐行处理 8 if "ERROR" in line: 9 print(f"警告:{line}")
1# 假设 'data.txt' 包含: 2# Line 1\n 3# Line 2\n 4 5with open('data.txt', 'r') as f: 6 for line in f: 7 # line.strip() 移除首尾空白字符,包括 '\n' 8 clean_line = line.strip() 9 print(f"已处理:{clean_line}")
1# 读取可能包含表情符号或非英文字符的文件 2filename = 'international.txt' 3 4# 我们显式传递 encoding='utf-8' 5with open(filename, 'r', encoding='utf-8') as f: 6 content = f.read() 7 print(f"成功读取 {len(content)} 个字符。")