为什么我无法读取刚才写入文本文件的内容。代码没有显示任何错误,但我无法读取我刚刚写入文档的内容。如果有人能帮我解决这个问题,那就太好了。顺便说一下,我是编程新手,如果这是一个简单的问题,请原谅我。我使用的是Python版本2.6.1
from sys import argv
script,file_name = argv
prompt = "> "
target = open(file_name, 'w+b')
print "press CRTL-C enter to escape this"
print "or press RETURN to continue"
raw_input(prompt)
print "Begin erasing stuff Goodbye!"
target.truncate()
print "we are going to start writing to file"
write_1 = raw_input(prompt)
write_2 = raw_input(prompt)
write_3 = raw_input(prompt)
target.write(write_1)
target.write(write_2)
target.write(write_3)
print target.read()
print "closing now!"
target.close()发布于 2012-04-29 17:22:19
在执行target.read()之前,您需要执行target.seek(0)以将文件指针重置为文件的开头。
发布于 2012-04-29 17:54:02
值得注意的是,在"w"模式下打开会自动截断文件,因此在该模式下打开,写入文件,然后在"r"模式下打开可能会更容易。这就是说,您不必手动截断并重新查找:
from sys import argv
script, file_name = argv
prompt = "> "
print("Press CTRL+C to exit,")
print("or press RETURN to continue.")
raw_input(prompt)
print("Begin erasing.")
with open(file_name, 'wb') as target:
print("Begin writing to file.")
write_1 = raw_input(prompt)
write_2 = raw_input(prompt)
write_3 = raw_input(prompt)
target.write(write_1)
target.write(write_2)
target.write(write_3)
with open(file_name, "rb") as target:
print(target.read())我也在为opening files使用the with statement。它不仅更具pythonic风格和可读性,而且可以为您处理闭包,即使发生异常也是如此。
值得注意的是,此时,它给出的输出都在一行上,因为写操作不会添加换行符,raw_input()也不会给出导致换行符继续的换行符。因此,您可能希望将它们添加到其中。我们也可以只使用一个write()命令,并将所有输入连接成一个字符串:
print("we are going to start writing to file")
data = [raw_input(prompt) for _ in range(3)]
target.write("\n".join(data))在这里,我使用a list comprehension来构建输入行的列表。这意味着我们不必多次写出line_x = raw_input(prompt),而且我们可以很容易地更改我们想要使用的行数。这也意味着我们可以很容易地使用str.join()来添加我们想要的换行符。
https://stackoverflow.com/questions/10371015
复制相似问题