我正在学习python并尝试在用户输入后删除生活中的内容。由于某种原因,它会在请求用户输入之前删除.txt的内容。似乎无法解决这个问题。
from sys import argv
import sys
script, filename = argv
def erase_contents(f):
user_input = input("> ")
if user_input == "yes":
current_file.truncate()
print("successfully deleted")
else:
sys.exit()
current_file = open(filename, "w+")
print(f"Now we are going to erase the contents of {filename}. type yes to delete.")
erase_contents(current_file)
答案 0 :(得分:0)
您不需要使用truncate
,因为您使用w+
作为模式打开文件,该文件会立即截断文件 。您可以使用模式a
,但实际上,在确定用户想要截断文件之前,无需打开文件。你可以写
def erase_contents(fname):
user_input = input("> ")
if user_input == "yes":
with open(fname, "w"):
pass
else:
sys.exit()
print(f"Now we are going to erase the contents of {filename}. type yes to delete.")
erase_contents(filename)