2011-12-06 80 views
0

我想知道如何追加一个换行符,每次列表达到棋盘(8)的大小。继承我的代码到目前为止。它的作品,但我想每8个字符换一个新行。追加一个新行到文件

saveFile=input("Please enter the name of the file you want to save in: ") 
    outputFile=open(saveFile,"w") 
    pieceList=[] 
    for row_index in range (self.SIZE): 
    for column_index in range(self.SIZE): 
     pieceRow=[] 
     char=" " 
     if self.grid[row_index][column_index]==Piece(Piece.WHITE): 
      char="w" 
     elif self.grid[row_index][column_index]==Piece(Piece.RED): 
      char="r" 
     pieceRow.append(char) 
    pieceList.append(pieceRow) 
    for item in pieceList: 
     for char in item: 
      outputFile.write("%s" %char) 

回答

1
saveFile=input("Please enter the name of the file you want to save in: ") 
    outputFile=open(saveFile,"w") 
    pieceList=[] 
    characterCounter =0 
    for row_index in range (self.SIZE): 
    for column_index in range(self.SIZE): 
     pieceRow=[] 
     char=" " 
     if self.grid[row_index][column_index]==Piece(Piece.WHITE): 
      char="w" 
     elif self.grid[row_index][column_index]==Piece(Piece.RED): 
      char="r" 
     pieceRow.append(char) 
     characterCounter++ 
     if characterCounter==8: 
      pieceRow.append("\n") 
      characterCounter=0 
    pieceList.append(pieceRow) 
    for item in pieceList: 
     for char in item: 
      outputFile.write("%s" %char) 
0
cnt = 0 
for item in pieceList: 
    for char in item: 
     outputFile.write("%s" %char) 
     cnt += 1 
     if cnt == 8: 
      outputFile.write("\n") 
      cnt = 0 
2

使用

if row_index % 8 == 0: 
    # put newline 
0

你的意思是你想每行之后追加新行? 为什么不加

pieceRow.append("\n") 

pieceList.append(pieceRow) 
0

你可以使用枚举,

例如, CONST_SIZE = 8

for index, item in enumerate(item_list): 
    output_file.write(item) 
    if index % 8 == 0: output_file.write('\n') 

每次将8个项目写入文件时,这会附加一个换行符。