python - 二进制文件未在 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
在执行时返回
解决方案
问题不在于模式,而在于您的文件路径。在“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()
~
推荐阅读
- java - 套接字上的空指针异常
- multithreading - 当线程数翻倍时,我的矩阵乘法程序需要四倍的时间
- xamarin - Xamarin Firebase 的问题订阅没有密钥的孩子 - Newtonsoft.Json 错误
- vim - 建议我 vimL 教程或文档
- python - 将单个 Google 工作表工作簿的所有工作表选项卡属性转换为数据框
- c# - 如何使用 async/await 实现具有两个等待点的任务
- powershell - 无法在文件资源管理器中直接在 vscode 中打开 json 文件?
- excel - 微软 Excel。返回匹配的项目
- javascript - 已解决:在反应客户端过滤结果数组
- python - 有没有办法使用 python 将 .pdf 转换为 .csv?