【问题标题】:how to create a pickle file correctly?如何正确创建泡菜文件?
【发布时间】:2017-12-26 21:48:15
【问题描述】:

我正在尝试创建一个泡菜文件。 我使用了以下代码:

def pickler(input_nparray):
    with open('/Users/username/Desktop/pklfilename.pkl', 'wb+') as f:
        pickle.dump(input_nparray, f)

这种方法效果很好。它的作用是接收 numpy 数组并将内容存储到 pklfilename.pkl 中。

但这里的问题是我必须指定文件名。我尝试通过以下方式执行此操作,但失败了。

def pickler(input_nparray, pklfilename):
    with open('/Users/swaghccc/Desktop/' + pklfilename, 'wb+') as f:
        pickle.dump(input_nparray, f)

pickler(input_nparray, 'file1.pkl')

谁能告诉我正确的选择?

【问题讨论】:

  • 怎么会失败?
  • 它不会创建 pickle 文件。代码没有错误。
  • 第二个代码 sn-p 中pklfilename 的值是多少?
  • 因此,使用代码 sn-p one,将生成一个名为 pklfilename.pkl 的文件。但是在代码 sn-p 中,没有生成名为 file1.pkl 的文件。
  • @HaraldNordgren 它是file1.pkl

标签: python numpy pickle contextmanager


【解决方案1】:

第一个示例和第二个示例的用户名不同。将其更改为 username 并使用文件名 pklfilename.pkl 并查看是否以第二个示例中的文件结尾。

另一个技巧是将文件名保存在一个变量中并打印它以尝试弄清楚发生了什么。

【讨论】: