在目录中挑选多个文件

时间:2017-05-08 18:30:24

标签: python pickle multiple-files

所以我想弄清楚一种方法来读取目录中的多个文本文件并将它们一起腌制以形成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)

大约有24个文本文件标记为englishText_1,englishText2等等。

1 个答案:

答案 0 :(得分: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)