Python 在一个目录中Pickle多个文件

Python 在一个目录中Pickle多个文件,python,pickle,Python,Pickle,因此,我想找出一种方法来读取目录中的多个文本文件,并将它们pickle在一起形成data.pkl文件 到目前为止,我的尝试如下: 代码: 大约有24个文本文件标记为englishText_1、englishText 2等等。如何使用数据将决定如何保存每个文件。如果文件名不是必需的,那么迭代目录中的每个文件并将内容保存到列表中,然后将该列表转储到pickle文件就足够了。如果需要保存文件名、属性等,我建议创建一个类来保存这些信息;即 class FileData(object): def

因此,我想找出一种方法来读取目录中的多个文本文件,并将它们pickle在一起形成data.pkl文件

到目前为止,我的尝试如下:

代码:


大约有24个文本文件标记为englishText_1、englishText 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文件中?我正在尝试将所有这些文本文件拉到一个pkl文件中,或者将每个文档加载到一个列表中,然后pickle不需要列表文件名。我只是在上面添加了它来描述它们的样子。我将“rb”路径更改为我正在读取的目录,并将文件夹路径更改为我正在读取的目录。错误:isDirectoryError:[Errno 21]是一个目录:'/home/mustafa/data/raw.en/raw.en'Its来自这一行,带有open(路径,“rb”)作为fileobj:和此行:file_list.append(FileData(path))
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)