首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python - f.write()被任意限制?

Python - f.write()被任意限制?
EN

Stack Overflow用户
提问于 2013-11-25 22:19:58
回答 1查看 74关注 0票数 0

我编写了一个测试程序的模块,它将测试数据写入文本文件。我的问题是,这个文件并不像我的系统RAM那么大,但是在写入所有数据之前总是会被切断。到底是怎么回事?

代码片段:

代码语言:javascript
复制
def test_del(tree, over=True):
    if over:
        log = open("testlog.txt", 'w+')
        log.truncate()
    else:
        try:
            log = open("testlog.txt", 'r+')
        except:
            log = open("testlog.txt", 'w+')
    lis = treeToList(tree)
    shuffle(lis)
    while lis:
        tree = delete(tree, lis.pop(0))
        log.write(str(write_tree(tree)))
        if tree:
            log.write("\n")
            for e in treeToList(tree):
                log.write(str((e, search(tree, e)))+"\n")
        log.write("-" * 80 + "\n")

    if "False" in log.read():
        print "There is an error in the test case. Refer to testlog.txt."
    else:
        print "No error in test case. Results stored in testlog.txt."

函数treeToList()将2-3树转换为列表,write_list()返回树的字符串表示,shuffle() is random.shuffle()delete()从树中删除给定的元素。所有这些功能都正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-25 22:23:38

我在任何地方都没有看到log.close()。没有这一点,您就不能保证日志实际上被正确地刷新到磁盘。

试着在每个写行之后添加一个log.flush()。它会减慢您的代码速度,但是它应该给出正确的输出。您可能也希望在log.seek(0)之前使用log.read()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20204563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档