Delete a row from a text file with Python -


i have file each line starts number. user can delete row typing in number of row user delete.

the issue i'm having setting mode opening it. when use a+, original content still there. however, tacked onto end of file lines want keep. on other hand, when use w+, entire file deleted. i'm sure there better way opening w+ mode, deleting everything, , re-opening , appending lines.

 def deletetodo(self):     print "which item want delete?"     deleteitem = raw_input(">") #select line number delete     print "are sure want delete number" + deleteitem + "(y/n)"     verifydelete = str.lower(raw_input(">"))     if verifydelete == "y":         file = open(todo.filename,"a+") #open file (tried w+ well, entire file deleted)         filelines = file.readlines() #read , display lines         line in filelines:             file.truncate()             if line[0:1] != deleteitem: #if number (first character) of current line doesn't equal number deleted, re-write line                 file.write(line)     else:         print "nothing deleted" 

this typical file may like

1. info here 2. more stuff here 3. more stuff here 

def deletetodo():     print ("which item want delete?")     deleteitem = raw_input(">") #select line number delete     print ("are sure want delete number" + deleteitem + "(y/n)")     deleteitem=int(deleteitem)      verifydelete = str.lower(raw_input(">"))     if verifydelete == "y":         file = open('data.txt',"r") #open file (tried w+ well, entire file deleted)         lines=[x.strip() x in file if int(x[:x.index('.')])!=deleteitem] #read lines first except line matches line number deleted         file.close()         file = open('data.txt',"w")#open file again         x in lines:file.write(x+'\n')    #write data file      else:         print ("nothing deleted") deletetodo() 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -