如何读取文件名不可读的文件?

时间:2018-09-15 08:51:13

标签: python python-2.7

我正在尝试阅读一些电子邮件文件。但是他们的名字格式很奇怪,像这样。

enter image description here

这是我尝试通过python读取其名称后的结果

enter image description here

这就是我尝试与他们合作时的问题。

enter image description here

这是我的代码:

class WorkSpaceSerializer(serializers.ModelSerializer):

    projects = ProjectSerializer(many=True,read_only=True,source="workspace_set")
    class Meta:
        # depth = 2

        model = WorkSpace
        fields = '__all__'

我的操作系统是Window 10

如何阅读其名称和内容? 谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

压缩所有文件并直接从zip文件读取。

例如,我将所有电子邮件压缩到emails.zip。然后,我使用zipfile库进行阅读。 这是我的代码:

 import email
 import os
 import sys
 import zipfile

 # Path to directory where attachments will be stored:
 path = sys.argv[1]
 # List files
 listing = os.listdir(path)

 for fle in listing:
     name = str(fle.lower())
     if name.endswith('.zip'):
        print '\n++++++++++++++ {} ++++++++++++++'.format(name)
        filepath = path + fle
        zfile = zipfile.ZipFile(filepath)
        for fname in zfile.namelist():
            data = zfile.read(fname)
            emailname = os.path.basename(fname).lower()
            if emailname.endswith('.eml'):

                msg_content = email.message_from_string(data)
                if msg_content['to'] is not None:
                    receiver = msg_content['to']
                elif msg_content['reply-to'] is not None:
                    receiver = msg_content['reply-to']
                else:
                    receiver = ''
                print emailname, receiver

我希望它可以在遇到相同问题时为任何人提供帮助。