首页 > 解决方案 > 二进制文件未在 python 中以“ab”模式写入数据

问题描述

我在 ./data 文件夹中有 user.dat 二进制文件(在我的项目目录中)我试图以“ab”模式在此文件中附加数据,但没有发生任何事情,但是当我使用“wb”模式时,数据写入它没有任何问题

import os,pickle
absolutePath = os.path.dirname(__file__)
def ap():
    data = ["B","2"]
    with open(absolutePath+"\\data\\user.dat","ab") as f:
        pickle.dump([data],f)

注意:在附加模式中,转储函数None在执行时返回

标签: pythonfunctionbinaryfiles

解决方案


问题不在于模式,而在于您的文件路径。在“ab”模式下,程序会尝试查找文件并向其中添加内容,而在“wb”模式下,它会创建文件并将内容写入其中。这就是为什么您的代码适用于“wb”模式但不适用于“ab”模式的原因。请检查您尝试附加到的文件和您在程序中提供的路径是否相同。我运行了以下程序,它运行良好。

import os,pickle
def ap():
    data = ["B","2"]
    with open("/home/ubuntu/data/user.dat","ab") as f:
        pickle.dump([data],f)
ap()

~


推荐阅读