如何在Python中将文本文件内容读取为二维字符矩阵
将文本文件转为10×20字符矩阵的解决方案
- 核心问题:你之前的写法错误地将所有字符合并到了同一个子列表中,正确的做法是每行生成一个独立的字符列表,再添加到父列表里。
- 无需额外库,用Python内置功能即可实现,代码如下:
# 初始化存储矩阵的空列表 char_matrix = [] # 打开文件并逐行处理 with open('your_file.txt', 'r') as file: for line in file: # 移除换行符(避免把换行符当成矩阵的一部分) processed_line = line.rstrip('\n') # 将字符串直接转为字符列表,添加到矩阵中 char_matrix.append(list(processed_line)) # 可选:验证矩阵维度是否符合10×20 print(f"行数:{len(char_matrix)}") if char_matrix: print(f"每行字符数:{len(char_matrix[0])}")
代码说明:
with open(...)是Python安全读取文件的标准方式,会自动处理文件关闭line.rstrip('\n')仅移除每行末尾的换行符,保留行内所有有效字符list(processed_line)直接将字符串拆分为单个字符的列表,每行生成一个新列表并追加到char_matrix,最终得到包含10个行列表的矩阵
错误写法示例(你之前可能犯的问题):
# 错误:所有字符都存入同一个子列表 char_matrix = [[]] with open('your_file.txt', 'r') as file: for line in file: for char in line.rstrip('\n'): char_matrix[0].append(char)
内容的提问来源于stack exchange,提问作者Andrew Marra
相关产品推荐
相关产品推荐

