Python: чтение меток из файла с последующим использованием меток для получения класса - PullRequest
0 голосов
/ 27 июня 2018

Я получил этот лист, и у меня возникли проблемы с ним. Задание

Это мой блокнот txt: maths_mark Я хочу создать его, как если бы:

  • mark => 90 = 10M1
  • mark => 80 = 10M2
  • mark => 70 = 10M3
  • mark => 60 = 10M4
  • mark => 50 = 10M5
  • mark => 40 = 10M6
  • mark => 30 = 10M7
  • mark => 20 = 10M8
  • mark => 10 = 10M9

Я застрял в том, как прочитать метки из файла, а затем создать новый текстовый файл с именами, метками и классом.

Если кто-то может помочь, это будет оценено.

Спасибо, Noob Coder

Ответы [ 3 ]

0 голосов
/ 27 июня 2018

Я застрял на том, как прочитать метки из файла, а затем создать новый текстовый файл с именами, отметками и классом.

fileList = list()
with open("Maths_Marks", 'r') as fp:
        fp = fp.readlines()
        for line in fp:
            tmpLine = line.split(",")
            sname = tmpLine[0]
            fname = tmpLine [1]
            marks = tmpLine[2]
            #Write your own logic to get GroupNumber.
            #Append into line using
            #line = line.strip() + "," + GroupNumber
            #fileList.append(line.strip())


#Open new file Maths_Group and write into that
with open("Maths_Group",'w') as s:
     for line  in filelist:
         print >> s, line

«линия» даст вам «Джек, Дэниелс, 90»

line = line.strip () + "," + GroupNumber => даст вам Джек, Дэниелс, 90,10M1

Если вы хотите извлечь каждое поле, используйте оставьте ниже часть.

sname = tmpLine[0]
fname = tmpLine[1]
marks = tmpLine[2]

Надеюсь, это поможет.

0 голосов
/ 27 июня 2018
import csv

# function to process data
def process_data(data):
    for item in data:
        marks = int(item[2])
        mclass = 'incorrect data entry try again'
        if marks == 0:
            mclass = "10.9"
        elif marks >= 0 and marks <= 100:
            mclass = "10.{}".format(10 - int(item[2][0]))
        yield '"{}","{}",{},{}'.format(item[0],item[1],item[2],mclass)

# read data to memory
data = []
with open("Maths_Mark.txt", "r") as csv_in:
    data = list(csv.reader(csv_in, delimiter=','))

# write contents to file
with open('Maths_Group.txt', 'w') as csv_out:
    for line in process_data(data):
        csv_out.write(line + "\n")
0 голосов
/ 27 июня 2018

Немного Google может помочь здесь в этой статье есть все, что вам нужно для открытия и записи в файлы. Чтобы поставить вас на правильный путь: Вы можете просто позвонить f=open("fileName.txt","w+"), чтобы открыть существующий файл и сохранить его в переменной. Тогда вы можете file_line=f.readlines() захватывать по одной строке за раз. Управляйте результатом так, как вам нужно. Создайте новую строковую переменную с результатом ваших манипуляций result= "My data" и затем используйте f2=open("newFileName.txt","w+") с новым именем файла, чтобы создать новый файл, для которого вы будете использовать f2.write(result) для записи в файл. Обязательно закройте наши ваши файлы f.close(),f2.close()

Часть манипулирования данными зависит от вас!

...