如何以有条理的方式写入文件?

时间:2017-10-04 17:14:38

标签: python text-files

我有这段代码:

file = open('scores.txt','w')
playerscores = []
playernames = [['A'],['B'],['C'],['D'],['E'],['F']]   
for y in range(6):
    for z in range(5):
            print("Enter score from Judge",z+1,"for couple ",playernames[0+y],"in round 1:")
            playerscores.append(int(input()))    
MY_LIST = str(playerscores)
for_every = 4

基本上,我想通过在新行上打印以下索引位置来写入文件

playerscore[0:6]
playerscore[7:13]

所以它看起来像:

1,1,1,1,1,1,1,1,1,1

而不是[1,1,1,1,1,1]

当我这样做时,我需要这样做

file = open('filename','r')

并致电一个职位,很容易发出。

2 个答案:

答案 0 :(得分:1)

如果我理解正确你正在寻找这样的东西:

enter code here
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Move
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_KeyDown(object sender, KeyEventArgs e)
    {

    }

    private void pictureBox1_Click(object sender, EventArgs e)
    {

    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        int i;

        for (i = 0; i < 500; i++)
        {

            if (e.KeyCode == Keys.Up)
            {
                pictureBox1.Location = new Point(pictureBox1.Left - 1);
                Application.DoEvents();
                System.Threading.Thread.Sleep(10);
            }

            if (e.KeyCode == Keys.Down)
            {
                pictureBox1.Location = new Point(pictureBox1.Left + 1);
                Application.DoEvents();
                System.Threading.Thread.Sleep(10);
            }




        }
      }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}
}

答案 1 :(得分:1)

以下是一些符合您需要的代码,尽管它从我的get_data()函数而不是input()获取数据。这使代码更容易测试。但是,一旦完成程序的开发,您就可以轻松地将get_data()调用替换为input()

关键的想法是,除了将输入数据的整数版本保存到playerscores之外,我们还将其以原始字符串形式保存在名为row的单独列表中。因此,当我们读完给定行的数据时,我们可以轻松地将其保存到文件中。这比尝试从playerscores分割数据并将其转换回字符串更简单。

from random import seed, randrange

# Seed the randomizer
seed(42)

# Make some fake data, to simulate user input.
# Print & return a random number from 1 to 5, in string form
def get_data():
    n = str(randrange(1, 6))
    print(n)
    return n

playernames = ['A', 'B', 'C', 'D', 'E', 'F']

numjudges = 5

playerscores = []
scoresfile = open('scores.txt', 'w')

for players in playernames:
    row = []
    for z in range(1, numjudges + 1):
        print("Enter score from Judge", z, "for couple ", players, "in round 1:")
        data = get_data()
        playerscores.append(int(data))
        row.append(data)
    scoresfile.write(','.join(row) + '\n')
    print()
scoresfile.close()

典型输出

Enter score from Judge 1 for couple  A in round 1:
1
Enter score from Judge 2 for couple  A in round 1:
1
Enter score from Judge 3 for couple  A in round 1:
3
Enter score from Judge 4 for couple  A in round 1:
2
Enter score from Judge 5 for couple  A in round 1:
2

Enter score from Judge 1 for couple  B in round 1:
2
Enter score from Judge 2 for couple  B in round 1:
1
Enter score from Judge 3 for couple  B in round 1:
5
Enter score from Judge 4 for couple  B in round 1:
1
Enter score from Judge 5 for couple  B in round 1:
5

Enter score from Judge 1 for couple  C in round 1:
4
Enter score from Judge 2 for couple  C in round 1:
1
Enter score from Judge 3 for couple  C in round 1:
1
Enter score from Judge 4 for couple  C in round 1:
1
Enter score from Judge 5 for couple  C in round 1:
2

Enter score from Judge 1 for couple  D in round 1:
2
Enter score from Judge 2 for couple  D in round 1:
5
Enter score from Judge 3 for couple  D in round 1:
5
Enter score from Judge 4 for couple  D in round 1:
1
Enter score from Judge 5 for couple  D in round 1:
5

Enter score from Judge 1 for couple  E in round 1:
2
Enter score from Judge 2 for couple  E in round 1:
5
Enter score from Judge 3 for couple  E in round 1:
4
Enter score from Judge 4 for couple  E in round 1:
2
Enter score from Judge 5 for couple  E in round 1:
4

Enter score from Judge 1 for couple  F in round 1:
5
Enter score from Judge 2 for couple  F in round 1:
3
Enter score from Judge 3 for couple  F in round 1:
1
Enter score from Judge 4 for couple  F in round 1:
2
Enter score from Judge 5 for couple  F in round 1:
4

scores.txt的内容

1,1,3,2,2
2,1,5,1,5
4,1,1,1,2
2,5,5,1,5
2,5,4,2,4
5,3,1,2,4