質問編集履歴

2

ソースコードの欄になおしました(すみませんでした)

2019/08/21 01:58

投稿

tatsunoshi
tatsunoshi

スコア4

test CHANGED
File without changes
test CHANGED
@@ -1,115 +1,3 @@
1
- ### 前提・実現したいこと
2
-
3
-
4
-
5
- 現在、送られてきたメールから添付ファイル(excel)を任意のフォルダに保存するスクリプトを書いています。
6
-
7
- mbox形式のものをpythonで処理しようと考えています。
8
-
9
-
10
-
11
-
12
-
13
- ### 発生している問題・エラーメッセージ
14
-
15
- 基本的には順調にいくのですが、ファイルによってはエラーで止まってしまいます。
16
-
17
-
18
-
19
- エラーメッセージ
20
-
21
-
22
-
23
- OSError: [Errno 22] Invalid argument:\Downloads\attach_ml\=?ISO-2022-JP?B?GyRCJWwlcyU0ITxILEQsGyhCIDctGyRCJVUbKEI=?=\n =?ISO-2022-JP?B?GyRCJSclayVISixATxsoQg==?= 171106.xls
24
-
25
- ### 該当のソースコード
26
-
27
- python 3.5.2
28
-
29
-
30
-
31
- ソースコード
32
-
33
-
34
-
35
- import os, sys
36
-
37
- import mailbox
38
-
39
-
40
-
41
- maildir = mboxファイル
42
-
43
-
44
-
45
- tempdir = 添付ファイル保存先ディレクトリ
46
-
47
-
48
-
49
- def extractMime(message):
50
-
51
-
52
-
53
- for part in message.walk():
54
-
55
- if part.get_content_maintype() == 'multipart':
56
-
57
- continue
58
-
59
-
60
-
61
-
62
-
63
- fname = part.get_filename()
64
-
65
- if fname != None:
66
-
67
-
68
-
69
- if fname.find(".xls") != -1:
70
-
71
- xlname = tempdir+'\'+ fname
72
-
73
-
74
-
75
- # excelファイルが存在する場合は処理を飛ばす
76
-
77
- if os.path.isfile(xlname) == False:
78
-
79
-
80
-
81
- print(xlname)
82
-
83
- fp = open(xlname, 'wb')
84
-
85
- fp.write(part.get_payload(decode=True))
86
-
87
- fp.close()
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
- if __name__ == '__main__':
96
-
97
- for message in mailbox.mbox(maildir):
98
-
99
- extractMime(message)
100
-
101
- ### 試したこと
102
-
103
-
104
-
105
- ここに問題に対して試したことを記載してください。
106
-
107
-
108
-
109
- ### 補足情報(FW/ツールのバージョンなど)
110
-
111
- ここにより詳細な情報を記載してください。
112
-
113
1
  ### 前提・実現したいこと
114
2
 
115
3
 

1

ソースコードの欄になおしました(すみませんでした)

2019/08/21 01:58

投稿

tatsunoshi
tatsunoshi

スコア4

test CHANGED
File without changes
test CHANGED
@@ -14,14 +14,130 @@
14
14
 
15
15
  基本的には順調にいくのですが、ファイルによってはエラーで止まってしまいます。
16
16
 
17
+
18
+
19
+ エラーメッセージ
20
+
21
+
22
+
23
+ OSError: [Errno 22] Invalid argument:\Downloads\attach_ml\=?ISO-2022-JP?B?GyRCJWwlcyU0ITxILEQsGyhCIDctGyRCJVUbKEI=?=\n =?ISO-2022-JP?B?GyRCJSclayVISixATxsoQg==?= 171106.xls
24
+
25
+ ### 該当のソースコード
26
+
27
+ python 3.5.2
28
+
29
+
30
+
31
+ ソースコード
32
+
33
+
34
+
35
+ import os, sys
36
+
37
+ import mailbox
38
+
39
+
40
+
41
+ maildir = mboxファイル
42
+
43
+
44
+
45
+ tempdir = 添付ファイル保存先ディレクトリ
46
+
47
+
48
+
49
+ def extractMime(message):
50
+
51
+
52
+
53
+ for part in message.walk():
54
+
55
+ if part.get_content_maintype() == 'multipart':
56
+
57
+ continue
58
+
59
+
60
+
61
+
62
+
63
+ fname = part.get_filename()
64
+
65
+ if fname != None:
66
+
67
+
68
+
69
+ if fname.find(".xls") != -1:
70
+
71
+ xlname = tempdir+'\'+ fname
72
+
73
+
74
+
75
+ # excelファイルが存在する場合は処理を飛ばす
76
+
77
+ if os.path.isfile(xlname) == False:
78
+
79
+
80
+
81
+ print(xlname)
82
+
83
+ fp = open(xlname, 'wb')
84
+
85
+ fp.write(part.get_payload(decode=True))
86
+
87
+ fp.close()
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ if __name__ == '__main__':
96
+
97
+ for message in mailbox.mbox(maildir):
98
+
99
+ extractMime(message)
100
+
101
+ ### 試したこと
102
+
103
+
104
+
105
+ ここに問題に対して試したことを記載してください。
106
+
107
+
108
+
109
+ ### 補足情報(FW/ツールのバージョンなど)
110
+
111
+ ここにより詳細な情報を記載してください。
112
+
113
+ ### 前提・実現したいこと
114
+
115
+
116
+
117
+ 現在、送られてきたメールから添付ファイル(excel)を任意のフォルダに保存するスクリプトを書いています。
118
+
119
+ mbox形式のものをpythonで処理しようと考えています。
120
+
121
+
122
+
123
+
124
+
125
+ ### 発生している問題・エラーメッセージ
126
+
127
+ 基本的には順調にいくのですが、ファイルによってはエラーで止まってしまいます。
128
+
129
+ (保存できるファイルとできないファイルがあります)
130
+
17
131
  ```
18
132
 
19
133
  エラーメッセージ
20
134
 
135
+ OSError: [Errno 22] Invalid argument:\Downloads\attach_ml\=?ISO-2022-JP?B?GyRCJWwlcyU0ITxILEQsGyhCIDctGyRCJVUbKEI=?=\n =?ISO-2022-JP?B?GyRCJSclayVISixATxsoQg==?= 171106.xls
136
+
137
+
138
+
21
139
  ```
22
140
 
23
- OSError: [Errno 22] Invalid argument:\Downloads\attach_ml\=?ISO-2022-JP?B?GyRCJWwlcyU0ITxILEQsGyhCIDctGyRCJVUbKEI=?=\n =?ISO-2022-JP?B?GyRCJSclayVISixATxsoQg==?= 171106.xls
24
-
25
141
  ### 該当のソースコード
26
142
 
27
143
  python 3.5.2
@@ -30,82 +146,84 @@
30
146
 
31
147
  ソースコード
32
148
 
149
+ import os, sys
150
+
151
+ import mailbox
152
+
153
+
154
+
155
+ maildir = mboxファイル
156
+
157
+
158
+
159
+ tempdir = 添付ファイル保存先ディレクトリ
160
+
161
+
162
+
163
+ def extractMime(message):
164
+
165
+
166
+
167
+ for part in message.walk():
168
+
169
+ if part.get_content_maintype() == 'multipart':
170
+
171
+ continue
172
+
173
+
174
+
175
+
176
+
177
+ fname = part.get_filename()
178
+
179
+ if fname != None:
180
+
181
+
182
+
183
+ if fname.find(".xls") != -1:
184
+
185
+ xlname = tempdir+'\'+ fname
186
+
187
+
188
+
189
+ # excelファイルが存在する場合は処理を飛ばす
190
+
191
+ if os.path.isfile(xlname) == False:
192
+
193
+
194
+
195
+ print(xlname)
196
+
197
+ fp = open(xlname, 'wb')
198
+
199
+ fp.write(part.get_payload(decode=True))
200
+
201
+ fp.close()
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+ if __name__ == '__main__':
210
+
211
+ for message in mailbox.mbox(maildir):
212
+
213
+ extractMime(message)
214
+
215
+
216
+
33
217
  ```
34
218
 
35
- import os, sys
36
-
37
- import mailbox
38
-
39
-
40
-
41
- maildir = mboxファイル
42
-
43
-
44
-
45
- tempdir = 添付ファイル保存先ディレクトリ
46
-
47
-
48
-
49
- def extractMime(message):
50
-
51
-
52
-
53
- for part in message.walk():
54
-
55
- if part.get_content_maintype() == 'multipart':
56
-
57
- continue
58
-
59
-
60
-
61
-
62
-
63
- fname = part.get_filename()
64
-
65
- if fname != None:
66
-
67
-
68
-
69
- if fname.find(".xls") != -1:
70
-
71
- xlname = tempdir+'\'+ fname
72
-
73
-
74
-
75
- # excelファイルが存在する場合は処理を飛ばす
76
-
77
- if os.path.isfile(xlname) == False:
78
-
79
-
80
-
81
- print(xlname)
82
-
83
- fp = open(xlname, 'wb')
84
-
85
- fp.write(part.get_payload(decode=True))
86
-
87
- fp.close()
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
- if __name__ == '__main__':
96
-
97
- for message in mailbox.mbox(maildir):
98
-
99
- extractMime(message)
100
-
101
219
  ### 試したこと
102
220
 
103
221
 
104
222
 
105
- ここに問題に対して試したことを記載してください
223
+ 文字コードが原因でもなさそうで、問題がわかりません
106
224
 
107
225
 
108
226
 
109
227
  ### 補足情報(FW/ツールのバージョンなど)
110
228
 
111
- ここにより詳細な情報を記載してください。
229
+ python 3.5.2 windows10