我遇到一些功能問題。它是編寫筆記的程序的一部分,由Id
標識。票據都保存在一個txt文件,結構爲:分配後的變量出錯?
Open
Id
Title
Message
Close
此功能是爲了找到一個Id
,獲取文件中的行號,後來通過複製到一個臨時文件刪除。我有一個失敗:
linea == linea_buscada-1
的我缺少什麼:在linea_buscada
變量我們正在這條線之前分配使用? 「with」是否會創建一個新的名稱空間?如果這是問題,那麼實現我的目標的最佳方式是什麼?我正在考慮一個全局變量或列表追加,但它們都存儲一個整數似乎太奇怪了。感謝您提前的幫助。
@staticmethod
def eliminar_nota(ID = None):
ID = str(ID) or input('ID?: ')
linea = 1
try:
with open('temp.txt', 'x+') as archivo_temporal:
with open("notas.txt", "r") as archivo_notas:
for line in archivo_notas:
linea += 1
archivo_temporal.write(line)
if ID in line:
linea_buscada = linea
os.remove("notas.txt")
archivo_temporal.seek(0,0)
with open("notas.txt", "w") as archivo_notas:
linea = 1
counting = False
for line in archivo_temporal:
linea += 1
if linea == linea_buscada - 1:
counting = 5
if not counting:
archivo_notas.write(line)
else:
counting -= 1
continue
finally:
os.remove('temp.txt')