【发布时间】:2021-06-16 02:46:02
【问题描述】:
我编写了一个小程序,它每小时将一个小字典腌制到一个文件中,启动一次。我使用的是 pickle.dump,最初是在我的 macbook 笔记本电脑上使用的。在那里,我指定了我想要的文件名,程序刚刚创建了文件以将数据转储到其中。 但是,完全相同的代码在我的 PC 上完成,我得到了标题错误。我以为是因为 PC 上的路径不同,所以我尝试执行“C:/..../playerdata/filename”而不是“./playerdata/filename”,但无济于事。
这是代码块:
def write_data(self,master_table,label,num):
filename = './playerdata/'+str(master_table["num"])+' - '+label+' - data'
with open(filename,"wb") as file:
pickle.dump(master_table,file,protocol=pickle.HIGHEST_PROTOCOL)
#masterlist[num] = [filename,label] #doesn't really matter for the problem
我假设错误正在发生,因为没有名为该文件的文件,但是当我在我的 mac 上运行它时,它只是创建了它。我相信pickle会这样做,但是代码永远不会有机会转储它,因为它需要先打开。
我是否缺少某种格式?如何让创建的文件不出错?
【问题讨论】:
-
Windows 上的文件名中不允许使用某些内容。您要写入的最终文件名是什么? (如果你是
print(filename)?) -
@AKX 类似 "0-Hour 0/00/00.067415 - data" 那里有什么不允许的吗?
-
是的。不允许使用斜线。