【发布时间】:2025-12-03 17:25:01
【问题描述】:
from sys import argv
script, filename = argv
print ("We're going to erase %r" % filename)
print ("If you don't want to do that, press CTRL-C (^C)")
print ("If you do want that, hit RETURN.")
input("?")
print ("Opening the file...")
target = open(filename, 'r+')
print ("Truncating the file. Goodbye!")
target.truncate()
print ("Enter two lines: ")
line1 = input("Line 1: ")
line2 = input("Line 2: ")
print ("I'm going to write those to the file")
target.write(line1)
target.write('\n')
target.write(line2)
print (target.read())
print ("Closing file")
target.close()
当我运行脚本时,编译器就像没有 print (target.read()) 行一样。如果我在该行之前关闭目标,并创建新变量,比如让我们说 txt = open(filename, 'r+') 然后 print (txt.read()) 它可以工作。有人能解释一下为什么它不像我上面那样工作吗?
【问题讨论】:
-
以
with open(filename, 'w') as target:的身份打开文件会擦除任何数据,写入两个输入行,然后with open(filename, 'r') as target:并读取,这不是更容易吗? -
一开始是这样做的,但后来我正在更改代码以试图找出该行不起作用的原因