2016-03-05 19 views
-1

簡介:我使用2 for循環遍歷10x10板,這是爲了將所有位置保存到文本文件。我是這個初學者,所以這就是爲什麼我的代碼看起來很簡單。寫入texfile問題(Python3.5)

問題:我需要在第一個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' codec can't encode character '\uf709' in position 1: ordinal not in range(128)

謝謝,我希望我遵守規則,我找到了這個問題,但沒有找到符合我需求的問題。

+0

後產生的誤差 – njzk2

+0

它了低於推薦完全相同的代碼。 – Padwas

+0

你確定它完全符合這條線嗎?另外,發佈完整的錯誤跟蹤 – njzk2

回答

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))) 
+0

你*確實知道他也在'Save_file.close'中省略了括號,不是嗎? – zondo

+0

謝謝你的工作,但是偶爾當我測試代碼時,我得到了和上面一樣的錯誤消息unicodeEncodeError。 – Padwas

+0

@zondo:恩,不,我沒有注意到,但這不是真的問題,是嗎?但是,謝謝你指出。 – mhawke