我的程序看起來像這樣。我必須通過執行temp.txt文件刪除numbers.txt文件中的三個記錄,即「16」,「17」和「18」,並將「10」替換爲「50」。我很難過。如何從Python文件中刪除特定的記錄?
import os
import fileinput
def main():
# Create a numbers.txt file and write the numbers 1 through 10 to it
number_file = open("numbers.txt", 'w')
for n in range(1, 11):
number_file.write(str(n) + '\n')
number_file.close()
# Read the data from the file and print the total of all the numbers
number_file = open("numbers.txt", 'r')
total = 0
line = number_file.readline()
while line != "":
amount = float(line)
print(amount)
total += amount
line = number_file.readline()
print(total)
number_file.close()
# Add the numbers 11 through 20
number_file = open("numbers.txt", 'a')
for n in range (11, 21):
number_file.write(str(n) + '\n')
number_file.close()
# Remove 16, 17, 18 and overwrite 10 with 50
temporary_file = open("temp.txt", 'w')
number_file = open("numbers.txt", 'r')
line = number_file.readline()
each_line = line.rstrip('\n')
while each_line != "" and each_line != "16" and each_line != "17" and each_line != "18":
temporary_file.write(line)
line = number_file.readline()
temporary_file.close()
number_file.close()
os.remove("numbers.txt")
os.rename("temp.txt", "numbers.txt")
main()
你是什麼意思「記錄」?文本文件的格式是什麼? – BrenBarn
它究竟包含什麼? –
您正在添加一個元素後關閉文件。你沒有例外嗎? – Javier