各行が数字で始まるファイルがあります。ユーザーは、削除したい行の番号を入力することにより、行を削除できます。
私が抱えている問題は、それを開くためのモードを設定することです。を使用するa+
と、元のコンテンツがまだ残っています。ただし、ファイルの最後には、残しておきたい行が追加されています。一方、を使用するw+
と、ファイル全体が削除されます。w+
モードで開いてすべてを削除してから、再度開いて行を追加するよりも良い方法があると確信しています。
def DeleteToDo(self):
print "Which Item Do You Want To Delete?"
DeleteItem = raw_input(">") #select a line number to delete
print "Are You Sure You Want To Delete Number" + DeleteItem + "(y/n)"
VerifyDelete = str.lower(raw_input(">"))
if VerifyDelete == "y":
FILE = open(ToDo.filename,"a+") #open the file (tried w+ as well, entire file is deleted)
FileLines = FILE.readlines() #read and display the lines
for line in FileLines:
FILE.truncate()
if line[0:1] != DeleteItem: #if the number (first character) of the current line doesn't equal the number to be deleted, re-write that line
FILE.write(line)
else:
print "Nothing Deleted"
これは典型的なファイルがどのように見えるかです
1. info here
2. more stuff here
3. even more stuff here