pickle
文件中写入此列表。这是我使用的代码:
import _pickle as pickle
with open(filepath+'filenames.pkl', 'wb') as f:
pickle.dump(filenames, f)
这给我以下错误:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-32-c59e6889d2fe> in <module>()
1 import _pickle as pickle
----> 2 with open(dpath+'filenames.pkl', 'wb') as f:
3 pickle.dump(filenames, f)
FileNotFoundError: [Errno 2] No such file or directory: '/data/train/filenames.pkl'
我应该创建此文件。为什么已经预计这个文件了?(我正在使用Python 3.6。)
在您的情况下很可能不存在目录
我尝试了此代码并获得了同样的错误:
输出:
import pickle as pickle
filenames='sadasdas'
with open('/tmp/not_exist/filenames.pkl', 'wb') as f:
pickle.dump(filenames, f)
您可以通过确保在写入文件之前确保目录存在:执行程序的程序方法是这样
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-7-6a22c2148796> in <module>()
1 import pickle as pickle
2 filenames='sadasdas'
----> 3 with open('/tmp/not_exist/filenames.pkl', 'wb') as f:
4 pickle.dump(filenames, f)
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/not_exist/filenames.pkl'
ref:
Https://stackoverflow.com/a/12517490/3027854
我也遇到了同样的问题,但没有任何答案对我有帮助。 目录在那里,我使用了
import os
filename = "/tmp/not_exist/filenames.pkl"
os.makedirs(os.path.dirname(filename), exist_ok=True)
data = 'sadasdas'
with open('/tmp/not_exist/filenames.pkl', 'wb') as f:
pickle.dump(data, f)
,但一次又一次地存在同样的问题。 我希望这对一些有同样问题的人有帮助: 我发现问题在于我有很多文件夹,也有文件的名称太长(由于我将文件名作为字符串编写,我试图指示该文件的特征)当我试图手动移动该文件时,我试图倾倒的文件夹将提出“目标文件夹的文件名太长”。 缩短文件名后,解决了问题。
时,问题消失了
wb
I必须从Windows 10上的Windows Defender上使用“控制文件夹访问”。 其他防病毒/防火墙可能具有相同的效果。 Https://support.microsoft.com/en-us/help/4046851/windows-10-controlled-folder-folder-access-windows-windows-defender-nefender-security-center
确保文件路径已经存在。
如果路径很长,请在路径前添加魔术前缀
abspath = pathlib.Path(filename).absolute()
with open(str(abspath), 'wb') as f:
pickle.dump(thing_to_pickle, f)
您需要将绝对路径放在`'用户//data/sosings/sosings