You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 21:39:16