2017-08-09 1 views
2

.msgのファイルを添付ファイルとしてダウンロードしようとしています(特にOutlookではなく)。.msgファイルからの添付ファイルをPythonで保存する

import win32com.client 
import os 
path = 'C:\\Users\\my_messages\\' 
files = [f for f in os.listdir(path) if '.msg' in f] 
print files 
for file in files: 
    outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
    msg = outlook.OpenSharedItem(os.path.join(path, file)) 
    att=msg.Attachments 
    for i in att: 
     i.SaveAsFile(os.path.join(path, i.FileName)) 

私は私がwin32comライブラリが問題を持っていると信じてつながる、このエラーを取得しておきます。どんな助けも大歓迎です。

IOError: [Errno 2] No such file or directory: u'C:\\Python27\\lib\\site-packages\\win32com\\gen_py\\00062FFF-0000-0000-C000-000000000046x0x9x6\\ItemEvents.py.temp' 

エラーは、このライン上に生成される:

msg = outlook.OpenSharedItem(os.path.join(path, file)) 
+0

あなた自身ではなく、https://github.com/mattgwwalker/msg-extractorのような既存のソリューションを検討しましたか?他に何もない場合は、少なくとも彼らがそれをやっている方法を見ることができます。 –

+0

ありがとう、私は 'python ExtractMsg.py example.msg'の例を使ってみましたが、'ファイル 'ExtractMsg'を開くことができません:[Errno 2]そのようなファイルやディレクトリはありません。私が 'import ExtractMsg'を実行すると、私は問題はありません。たぶん私はライブラリのコードを掘り下げてみる必要があります。 – user2242044

+0

'Anaconda 'と一緒にインストールされたPython 3.6.0でうまく動作しました。 'win32com'ライブラリをどうやってインストールしましたか? – Adonis

答えて

0

問題は、ここにすることによって実証されるように、ライブラリのPythonの問題は、使用した。より具体的

  • pypiwin32(及び電話outlook.OpenSharedItem)は、新鮮なインストールでPython2.7と一緒に動作します
  • OPはCOPY後に動作することができましたグラムの作業からのライブラリフォルダ(site-packages\win32com)は、(故障した)彼の元にインストールし、問題にライブラリwin32comの作業バージョンをコピー調査は明確な答えを持っているために必要とされるであろうより

、少なくともをインストールこの問題の回避策がインストールされています。

関連する問題