Python写入文本文件时如何实现内容横向按行打印?
文件写入格式修正问题
期望输出格式
向文本文件写入玩家数据时,需要得到如下格式内容:
Bruce Wayne 5 5 0 0 100 15 Jessica Jones 12 0 6 6 10 6 Johnny Rose 6 2 0 4 20 10 Gina Linetti 7 4 0 3 300 15 Buster Bluth 3 0 2 1 50 1
现有问题代码
当前编写的写入代码如下:
def write_to_file(filename, player_list): outfile = open(filename, "w") for i in range(len(player_list)): for j in player_list[i]: outfile.write(str(j) + '\n') outfile.close()
运行后实际输出为所有元素逐行纵向排列,不符合要求:
Bruce Wayne 5 5 0 0 100 15 Jessica Jones 12 0 6 6 10 6 Johnny Rose 6 2 0 4 20 10 Gina Linetti 7 4 0 3 300 15 Buster Bluth 3 0 2 1 50 1
测试数据
本次使用的player_list结构如下:
player_list = [['Bruce Wayne', 5, 5, 0, 0, 100, 15], ['Jessica Jones', 12, 0, 6, 6, 10, 6], ['Johnny Rose', 6, 2, 0, 4, 20, 10], ['Gina Linetti', 7, 4, 0, 3, 300, 15], ['Buster Bluth', 3, 0, 2, 1, 50, 1]]
约束要求
- 不允许使用任何列表函数
- 必须采用循环逻辑实现
- 最终每个玩家对应的数值需要横向排列在同一行,匹配期望输出格式
问题原因
原有代码的内层循环对玩家数据的每一个元素都追加了换行符\n,没有区分「需要单独成行的姓名字段」和「需要空格分隔、同行排列的数值字段」,导致所有元素全部单独占一行。
修正后代码
def write_to_file(filename, player_list): outfile = open(filename, "w") for i in range(len(player_list)): player_data = player_list[i] # 写入单独成行的玩家姓名 outfile.write(str(player_data[0]) + '\n') # 先写入第一个数值,避免行首出现多余空格 outfile.write(str(player_data[1])) # 循环写入剩余数值,用空格做分隔 for j in range(2, len(player_data)): outfile.write(' ' + str(player_data[j])) # 数值行末尾加换行 outfile.write('\n') outfile.close()
逻辑说明
- 外层循环按索引遍历所有玩家条目,全程通过索引访问元素,未调用任何列表方法
- 每个玩家条目的索引0位是姓名,写入后直接加换行,占独立一行
- 数值部分从索引1位开始,先写入第一个数值,避免行首多出无意义空格
- 内层循环从索引2开始遍历剩余数值,每个数值前拼接空格,和前面的内容写入同一行
- 单玩家的所有数值写入完成后,追加换行结束当前数值行
- 所有数据写入完成后关闭文件句柄
内容的提问来源于stack exchange,提问作者softloftmaria
相关产品推荐
相关产品推荐

