小编use*_*810的帖子

Python 2.7 - 从电子邮件消息文件中提取 Zip

我需要检索 .zip 档案,检索 .zip 中的文件并提取其数据。.zip 档案附在电子邮件文件中;我没有使用邮件协议来访问邮箱。我能够解析消息...

...
from email.parser import Parser
...
for fileName in os.listdir(mailDir):
    ...
    message = Parser().parse(open(mailDir + '/' + fileName, 'r'))
    ...
    for part in message.walk():
        if part.get_content_type() == 'application/octet-stream':
Run Code Online (Sandbox Code Playgroud)

当我第一次开始编写这段代码时,我正在测试一封带有 .csv 附件的电子邮件,并且在访问附件和提取数据时没有问题,但现在我正在处理带有 .zip 的电子邮件(包含以前使用的.csv)我被卡住了。添加...

import zipfile
Run Code Online (Sandbox Code Playgroud)

...但似乎我需要实际将附加的 .zip 保存到文件系统才能使用 zipfile。我宁愿不这样做,并认为(希望)我可以简单地使用......

zipfile.ZipFile(the_base64_string_from_message, 'r')
Run Code Online (Sandbox Code Playgroud)

但那失败了。如何在不在文件系统中创建 .zip 存档的情况下访问存档?此外,也许我什至不应该使用电子邮件模块(仅使用它以便我可以轻松找到附件)???

python email zip email-attachments

5
推荐指数
2
解决办法
2201
查看次数

比较两个数组的两个数组

我正在努力使用适当的逻辑来比较以下数组:

$a = [
    "ip" => [
        "1.2.3.4",
        "4.3.2.1",
    ],
    "domain" => [
        "example.com",
        "another.domain",
    ],

];

$b = [
    [
        "id"=> 136589,
        "metaname" => "ip",
        "metavalue" => "1.2.3.4",
    ],
    [
        "id"=> 136590,
        "metaname" => "domain",
        "metavalue" => "example.com",
    ],
];
Run Code Online (Sandbox Code Playgroud)

我需要循环$a查找不存在的key('ip')值('1.2.3.4')组合$b.在数组中$a,我需要捕获ip '4.3.2.1'和域'another.domain'

$b有不同键的匹配值是可能的吗?

一个很好的例子就是'ip'地址.可能与IP相关的元名值是'ip','ip.dst''ip.src'.返回示例数据 - 即使'ip'匹配,如果metaname不匹配,也应该跳过它.

foreach ($a as $metaName => $metaValues)
{
    foreach ($metaValues as …
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array

5
推荐指数
1
解决办法
89
查看次数