Python 写入后重新打开文件

2 投票
2 回答
752 浏览
提问于 2025-04-18 02:32

我已经成功创建了一个叫做 write.py 的程序,它可以通过 HTML 的 "post" 方式接收信息,并把这些信息(每次只有一行)写入一个叫做 infoLog.ssv 的文件里。现在我想再写一个 .py 程序,这个程序不仅能在这个文件里添加一行新文本,还能读取 infoLog.ssv 文件里的所有内容,并把它们打印到屏幕上。不过,我在程序尝试打开这个文件时遇到了一些问题。我检查过了,确实我的程序成功地在文件里添加了内容,但当我重新打开文件时,它似乎就不工作了。

f=open("infoLog.ssv","a")
strValueQuestion=str(question)
f.write("\n"+strValueQuestion)
f.close()
print "Successfully added"
f1=open("infoLog.ssv","r")
f1.close()
sys.stdout.flush()
print "It never prints this..."

正如你所看到的,在调试的时候,我现在只是打开和关闭文件,但即便如此,它还是没有打印出最后的那条信息。

2 个回答

1

看起来'r+'或'w+'这两种方式可以让你同时对一个文件进行读和写操作。

3

查看你的日志,可能在这一行 f1.open("infoLog.ssv", "r") 出现了错误。

如果你想打印文件的内容,你可能是想这样做:

with open("infoLog.ssv","r") as f1:
    print f1.read()
    sys.stdout.flush()
    print "It should prints this... =)"

注意,如果你使用 with 语句,就不需要手动关闭文件了,具体可以参考这个链接:http://effbot.org/zone/python-with-statement.htm

撰写回答