鉴于r+
,我无法通过以r+ Open for reading and writing. The stream is positioned at the beginning of the file.
模式打开文件来截断先前创建的文件
参考-> here
from sys import argv
script, filename = argv
print(f"We're going to erase {filename}")
print("If you don't want that, hit Ctrl+C (^C).")
print("If you do want that, hit return")
input("?")
print("Opening the file...")
target = open(filename, 'r+')
print(target.read())
print("Truncating the file, Goodbye!")
target.truncate()
答案 0 :(得分:0)
“截断”方法采用可选的size参数。如果未指定该参数,它将使用文件中的默认位置。我假设由于您只是读取文件,所以默认位置在文件的末尾-因此,没有任何内容跟随当前位置,并且没有任何内容被截断。尝试将零(0)传递给truncate方法,看看会发生什么。您也可以尝试使用“ rw +”打开文件。
答案 1 :(得分:0)
The truncate
method将调整文件的大小,以使其在当前文件位置结束(如果未传递,则size
参数的值)。 read
文件时,您将文件中的当前位置从头到尾移动。这意味着截断什么都不做,因为您要使文件的新结尾与旧结尾位置相同。
如果要不带任何参数调用truncate
,则需要先seek
回到文件的开头,或者调用truncate(0)
告诉它创建新文件文件大小为零字节。