2014-12-17 2 views
-2

내가 특별히 아직 CSV에 f.close()를 호출 내가 코드를 실행할 때 오류를 반환 작동하지 않는 것 코드의 나머지 부분의 맥락에서.close()는 파이썬 CSV가

from tkinter import * 
import csv 
import os 

def deleteuser(): 
    def deleteanaccount(searchusername): 
     f = open('Student Data.csv', 'r') 
     r = csv.reader(f) 
     lines = [l for l in r] 
     f.close() 
     usernamelist = [] 
     for item in lines: 
      usernamelist.append(item[0])   
     x = usernamelist 
     for i in range(0, len(usernamelist)): 
      if searchusername == usernamelist[i]: 
       print(i) 
       del(lines[i]) 
      os.remove('Student Data.csv') 
      writer = csv.writer(open('Student Data.csv', 'w', newline='')) 
      writer.writerows(lines) 


    def clickdelete(): 
     y = whichaccount.get() 
     deleteanaccount(y) 


    deleteuserwindow = Tk() 
    deleteuserwindow.iconbitmap("hXYTZdJy.ico") 
    deleteuserwindow.title("Remove a User") 
    whichaccount = Entry(deleteuserwindow) 
    whichaccount.grid(row = 0, column = 0, padx = 10, pady = 20) 
    Button(deleteuserwindow, text = "Submit", command = clickdelete, height = 4, width = 10).grid(row = 0, column = 1) 
    deleteuserwindow.mainloop() 

deleteuser() 
+4

'for' 루프 안에서'os.remove ('Student Data.csv')를 호출하고 있습니다. 그것은 처음으로 작동 할 것입니다 ... – martineau

+0

어떤 라인에서 오류가 발생하는지 알려줄 수 있습니까? 나는 사람들이 왜 이런 종류의 것을 여기에 비밀로 유지하는지 모르겠다. – tdelaney

+1

나는 어리석은 실수를했다. 미안하다. 나는 루프에서 그것을 부르고 있었다. @martineau –

답변

1

, 나는 당신이 원하는 무엇을 추측하고있어 다시 쓰기입니다 : 파일은 코드

는, 어떤 도움을 크게 감상 할 수있다, 많은 감사

폐쇄되지 않는다 CSV 파일은 한 번만 끝나면 끝납니다. g 데이터 ( lines 내 생각) : 사전에

for i in range(0, len(usernamelist)): 
     if searchusername == usernamelist[i]: 
      print(i) 
      del(lines[i]) 

    # Don't do this stuff until the loop is done 
    os.remove('Student Data.csv') 
    writer = csv.writer(open('Student Data.csv', 'w', newline='')) 
    writer.writerows(lines) 

Apolgies 나는 코드의 의도를 잘못 해석 한 경우.

+1

사용 범위를 열거하지 말라. –

관련 문제