写入texfile问题。(Python3.5)

时间:2016-03-05 22:28:39

标签: python python-3.5

简介:我使用2 for循环遍历10x10板,这样做是为了将所有位置保存到文本文件中。我是这个的初学者,这就是为什么我的代码看起来很简单。

问题:我需要在第一个for循环的每次迭代后在文本文件中打印一个新行。我已经完成了实际的保存部分。

链接到当前和所需的输出:http://pastebin.com/Un12u5L8

代码:

def SaveGame(Board):

  Save_file = open('SaveFile.txt', 'w')

  for row in range (BOARDDIMENSION):

     for col in range (BOARDDIMENSION):

         save = Board[row][col]

         Save_file.write(save)

  Save_file.close()

当前输出:--D----------D----------D------BBBB--A------m--A---------A---------A-------S-A--------S------PP--S--

所需输出:与上述相同,但每10次后就会生成一个新行

我尝试使用\n,但收到了此错误:

  

UnicodeEncodeError:' ascii'编解码器不能对字符' \ uf709'进行编码。位置1:序数不在范围内(128)

谢谢,我希望我遵守规则,我确实搜索了这个问题,但没有找到符合我需求的问题。

1 个答案:

答案 0 :(得分:0)

在内循环的末尾写一个新行。

def SaveGame(Board):
    Save_file = open('SaveFile.txt', 'w')
    for row in range (BOARDDIMENSION):
        for col in range (BOARDDIMENSION):
            save = Board[row][col]
            Save_file.write(save)
        Save_file.write('\n')
    Save_file.close()

目前还不清楚board是什么,是列表列表还是字符串列表?无论如何,更好的方法是:

def save_game(board):
    with open('SaveFile.txt', 'w') as save_file:
        for row in board:
            save_file.write('{}\n'.format(''.join(row)))