не могу открыть файл, используя filedialog.askopenfilename - PullRequest
0 голосов
/ 22 мая 2018
import csv
import random
from tkinter import filedialog
from tkinter import *




lastname=['liu','zhang','cao','lee','chan','trump','obama','fong','an','olszak','sheng','pei','ive','tom','zixin','joney'
      'bob','york','dave','jian']
firstname=['zach','jack','jimmy','demon','peter','nancy','chiga','rossan','hayya','babo','pasadena','houston','yakawa'
       'rossan','terrence','bill','collen','max','rose','allen']
name=[]
grade=['A','B','C','D']
with open('cis9csv.csv','w') as fp:
  csvwriter_1=csv.writer(fp,delimiter=',')
  csvwriter_1.writerow(('nameofstudent', 'assignment1', 'assignment2', 'assignment3', 'assignment4', 'quiz1', 'quiz2','quiz3', 'quiz4', 'finalgrade'))
  csvwriter_1.writerow(('student name','If Else','Loops','Functions','File IO','Conditionals','Repetition','Python Funcitons','Input Output','Grade'))
#randomly creates 20 students with random selected name,and grade
  for i in range(0,1):

    last=random.choice(lastname)
    first=random.choice(firstname)
    name1=(last+first)
    name.append(name1)




#random score 


    assignment1 = random.randint(50, 100)
    assignment2=random.randint(50,100)
    assignment3=random.randint(50,100)
    assignment4=random.randint(50,100)

    quiz1=random.randint(50,100)
    quiz2=random.randint(50,100)
    quiz3=random.randint(50,100)
    quiz4=random.randint(50,100)
    totalsocre=assignment1+assignment2+assignment3+assignment4+quiz1+quiz2+quiz3+quiz4
    if totalsocre<=560 and totalsocre>=480:
        ave='D'
    elif totalsocre<=640 and totalsocre>560:
        ave='C'
    elif totalsocre<=720 and totalsocre>640:
        ave='B'
    else:
        ave='A'

    #testcomment
    def lettername():
        print('Hello', name1, ',')
    def assignmentone():
        if assignment1 <= 80:
            print('Look at your assignments, you did bad on your first assignmet ')
        elif assignment1 < 90 and assignment1 > 80:
            print('Look at your assignments, you did good on your first assignmet')
        elif assignment1 >= 90:
            print('Look at your assignments, you did very well on your first assignmet ')
    def assignmenttwo():
        if assignment2 <= 80:
            print('and you did bad on your second assignmet ')
        elif assignment2 < 90 and assignment1 > 80:
            print('and you did good on your second assignmet')
        elif assignment2 >= 90:
            print('and you did very well on your second assignmet ')
    def assignmentthree():
        if assignment3 <= 80:
            print('and you did bad on your third assignmet ')
        elif assignment3 < 90 and assignment1 > 80:
            print('and you did good on your third assignmet')
        elif assignment3 >= 90:
            print('and you did very well on your third assignmet ')
    def assignmentfour()  :
        if assignment4 <= 80:
            print('and you did bad on your last assignmet ')
        elif assignment4 < 90 and assignment1 > 80:
            print('and you did good on your last assignmet')
        elif assignment4 >= 90:
            print('and you did very well on your last assignmet ')
    def quizeone() :
        if quiz1 <= 80:
            print(' you did bad on your first quizze ')
        elif quiz1 < 90 and assignment1 > 80:
            print('you did good on your first quizze')
        elif quiz1 >= 90:
            print(' you did very well on your first quizze ')
    def quizetwo() :
        if quiz2 <= 80:
            print(' you did bad on your second quizze ')
        elif quiz2 < 90 and assignment1 > 80:
            print('you did good on your second quizze')
        elif quiz2 >= 90:
            print(' you did very well on your second quizze ')
    def quizethree() :
        if quiz3 <= 80:
            print(' you did bad on your third quizze ')
        elif quiz3 < 90 and assignment1 > 80:
            print('you did good on your third quizze')
        elif quiz3 >= 90:
            print(' you did very well on your third quizze ')
    def quizefour():
        if quiz4 <= 80:
            print(' you did bad on your last quizze ')
        elif quiz4 < 90 and assignment1 > 80:
            print('you did good on your last quizze')
        elif quiz4 >= 90:
            print(' you did very well on your last quizze. ')
        print('Therefore your final grade is a  ', ave)


    student=(name1,assignment1,assignment2,assignment3,assignment4,quiz1,quiz2,quiz3,quiz4,ave)
    csvwriter_1.writerow(student)
    letter=(lettername(),assignmentone(),assignmenttwo(),assignmentthree(),assignmentfour(),quizeone(),quizetwo(),quizethree(),quizethree())
    csvwriter_1.writerow(letter)



fp.close()



root=Tk()
root.cis9csv=filedialog.askopenfile(initialdir='/',title='Select file',filetypes=(("csvfile","*.csv"),("All files","*.*")))
print (root.cis9csv)

Мне нужно открыть файл CSV. Прочитать его и, используя информацию из файла CSV, чтобы дать каждому ученику среднюю оценку (я сделал это уже в своем коде), когда я запускаю этот код, я получаю "2018-05-21 17: 53: 03.256 Python [15593: 2403648] Не удалось найти или прочитать файл строк. SlicesStrings "Я использовал много методов, но все еще получаю эту ошибку.

pls help ..

...