在一个目录中腌制多个文件
问题描述:
因此,我想找出一种方法来读取目录中的多个文本文件,并将它们一起腌制以形成data.pkl文件。在一个目录中腌制多个文件
到目前为止,我试过如下:
代码:
import _pickle as cPickle
file1=open('/home/mustafa/data/raw.en/raw.en','rb')
obj=[file1.read()]
pickle.dump(obj,open('data.pkl','wb'),4)
有标注为englishText_1,englishText2等约2打的文本文件。
答
如何使用数据将决定您想要如何保存每个文件。如果文件名不是必需的,那么遍历目录中的每个文件并将内容保存到列表中,然后将该列表转储到pickle文件就足够了。如果你需要保存文件名,属性等,那么我会建议创建一个类来保存该信息;即
class FileData(object):
def __init__(self, path):
self.path = path
with open(path, "rb") as fileobj:
self.data = fileobj.read()
# add whatever other attributes you want to save here
然后将FileData实例添加到列表或其他类并将其转储到文件。
file_list = []
for name in os.listdir(folder_path):
path = os.path.join(folder_path, name)
if not os.path.isfile(path):
continue
file_list.append(FileData(path))
with open(pkl_path, "wb") as fileobj:
cPickle.dump(file_list, fileobj)
你试图将文件的内容添加到列表,然后将这些列表pickle到pkl文件? – user2682863
我试图将所有这些文本文件放入1个pkl文件 – Silas
或者将每个文档加载到一个列表中,然后腌制该列表 – Silas