簡體   English   中英

python的pickle文件是跨平台的嗎?

[英]Is pickle file of python cross-platform?

我已經創建了我的一個小的 python 腳本。 我在 Linux 上保存了泡菜文件,然后在 Windows 上使用它,然后再次在 Linux 上使用它,但現在該文件在 Linux 上不起作用,但它在 Windows 上運行良好。 是這樣,python 是 coss 平台,但泡菜文件不是。 這個有什么解決辦法嗎???

Python 的 pickle 是完全跨平台的。

這可能是由於 Windows 和 Linux 之間的 EOL(行尾)差異所致。 確保在寫入和讀取它們時以二進制模式打開泡菜文件,分別使用 open() 的“wb”和“rb”模式。

注意:在不同版本的 Python 之間傳遞 pickle 會引起麻煩,所以盡量在兩個平台上使用相同的版本。

pickle模塊 支持幾種不同的數據格式 如果您指定特定的 pickle 格式而不是使用默認值 (0),您可能會遇到跨平台二進制文件問題。 您可以通過指定協議 0 來使用純 ASCII 泡菜文件。

也許您沒有以二進制模式打開文件? 看到這個stackoverflow問題

Pickle 應該是跨平台的,存在版本控制/協議問題(請參閱http://docs.python.org/library/pickle.html#data-stream-format )但一般來說,如果您使用相同版本的python 在你的 windows 和 unix 機器上,它們應該是可互操作的。

如果您使用 pickle 作為數據傳輸機制,您可能需要考慮用於數據存儲的實現較少的特定格式,例如 json、xml、csv、yaml 等。

您可以使用json而不是pickle 如果它可以保存您的數據,您就知道它是跨平台的。

一個值得嘗試的有趣想法是PyON (Python 對象表示法)。 根據我的測試,當前版本似乎至少適用於簡單的情況。 不過,對於該項目是否是一個好主意,郵件列表似乎存在一些分歧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM