0

テキストファイルから最後の行を読み込もうとしています。各行は数字で始まるため、次に何かが挿入されると、新しい数字が 1 ずつ増えます。

たとえば、これは典型的なファイルです

1. Something here          date
2. Something else here     date
#next entry would be  "3.   something    date"

ファイルが空白の場合、問題なくエントリを入力できます。ただし、すでにエントリがある場合、次のエラーが表示されます

LastItemNum = lineList[-1][0:1] +1 #finds the last item's number
TypeError: cannon concatenate 'str' and 'int objects

関数のコードは次のとおりです

 def AddToDo(self): 
    FILE = open(ToDo.filename,"a+") #open file for appending and reading
    FileLines = FILE.readlines() #read the lines in the file
    if os.path.getsize("EnteredInfo.dat") == 0: #if there is nothing, set the number to 1
        LastItemNum = "1"
    else:
        LastItemNum = FileLines[-1][0:1] + 1 #finds the last items number
    FILE.writelines(LastItemNum + ". " + self.Info + "       " + str(datetime.datetime.now()) + '\n')
    FILE.close()

LastItemNum を文字列に変換しようとしましたが、同じ「連結できません」というエラーが表示されます。

4

1 に答える 1

5
LastItemNum = int(lineList[-1][0:1]) +1

次に、次をLastItemNum使用して、ファイルに書き込む前に文字列に戻す必要があります。

LastItemNum=str(LastItemNum)または、これの代わりに文字列フォーマットを使用できます。

于 2012-06-28T14:14:55.673 に答える