teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

編集上の修正

2021/04/18 04:49

投稿

退会済みユーザー
answer CHANGED
@@ -37,10 +37,10 @@
37
37
  print("スキップ(GIF)")
38
38
  else:
39
39
  img = cv2.imread('/Users/username/banggood/u' + x)
40
- print(img.shape)
40
+ # print(img.shape)
41
41
  img2 = cv2.resize(img, dsize=None, fx=0.5, fy=0.5)
42
42
  cv2.imwrite('/ Users/username/banggood/u' + x, img2)
43
- print("保存(GIF以外) パス:",x)
43
+ print("保存(GIF以外) パス:",x, "shape",img.shape)
44
44
 
45
45
  except urllib.error.HTTPError:
46
46
  print("スキップ(HTTPエラー)")

3

変更4回目

2021/04/18 04:49

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- 2回目+3回目(エラー通知の変更)
1
+ 2回目+3回目(エラー通知の変更)+ 4回目(全条件のトレース)
2
2
  ---
3
3
  ```Python
4
4
  import sys
@@ -14,7 +14,7 @@
14
14
  headers = {
15
15
  "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0"}
16
16
  for column_name, item in df.iteritems():
17
-
17
+ print("捜査中 カラム",column_name,"アイテム",item ,"...",end="")
18
18
  if column_name == 'url' or '_1' or '_2' or '_3' or '_4' or '_5' or '_6' or '_7' or '_8' or '_9':
19
19
  for index, row in df.iterrows():
20
20
 
@@ -31,43 +31,35 @@
31
31
  x = row['code'] + column_name.replace('URL', '') + ".jpeg"
32
32
  with open('/Users/username/banggood/u/' + x, mode="wb") as f:
33
33
  f.write(mem)
34
- print(x)
34
+ # print(x)
35
35
 
36
36
  if url_extension == ".gif":
37
- print("!!!gif!!!")
37
+ print("スキップ(GIF)")
38
38
  else:
39
39
  img = cv2.imread('/Users/username/banggood/u' + x)
40
40
  print(img.shape)
41
41
  img2 = cv2.resize(img, dsize=None, fx=0.5, fy=0.5)
42
- cv2.imwrite(
43
- '/ Users/username/banggood/u' + x, img2)
42
+ cv2.imwrite('/ Users/username/banggood/u' + x, img2)
43
+ print("保存(GIF以外) パス:",x)
44
44
 
45
45
  except urllib.error.HTTPError:
46
- # print("エラー")
47
- print("!!! HTTP エラー")
46
+ print("スキップ(HTTPエラー)")
48
- traceback.print_exc()
47
+ # traceback.print_exc()
49
48
  except Exception as err:
50
- print("!!! HTTP エラー以外のエラー")
49
+ print("スキップ(HTTP以外のエラー)")
51
- traceback.print_exc()
50
+ # traceback.print_exc()
52
51
  time.sleep(1)
53
52
 
54
53
  except Exception as err:
55
- print("!!! URL 関連のエラー")
56
- print("CSVに定義されている元のURL[" + row[column_name] + "]に問題があるようです。スキップします。")
54
+ print("スキップ(URLエラー) CSVに定義されている元のデータ[" + row[column_name] + ,url_extension + "]に問題があるようです。")
57
- # print("ROW", row[column_name])
58
- # print("EXT", url_extension )
59
55
 
60
- # traceback.print_exc()
61
- # except AttributeError as error:
62
- # print()
63
- # except ValueError as error:
64
- # print()
65
56
  else:
66
- print()
57
+ print("スキップ 対象外のカラム名です。")
67
58
 
68
- f.close()
69
59
  print("正常に終了しました。")
70
60
 
61
+ # f.close() # <---with ○○ as fのため不要
62
+
71
63
  ```
72
64
 
73
65
 

2

編集3回目エラー通知の変更

2021/04/18 04:42

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- 2回目
1
+ 2回目+3回目(エラー通知の変更)
2
2
  ---
3
3
  ```Python
4
4
  import sys
@@ -53,7 +53,11 @@
53
53
 
54
54
  except Exception as err:
55
55
  print("!!! URL 関連のエラー")
56
+ print("CSVに定義されている元のURL[" + row[column_name] + "]に問題があるようです。スキップします。")
57
+ # print("ROW", row[column_name])
58
+ # print("EXT", url_extension )
59
+
56
- traceback.print_exc()
60
+ # traceback.print_exc()
57
61
  # except AttributeError as error:
58
62
  # print()
59
63
  # except ValueError as error:
@@ -62,6 +66,8 @@
62
66
  print()
63
67
 
64
68
  f.close()
69
+ print("正常に終了しました。")
70
+
65
71
  ```
66
72
 
67
73
 

1

修正案を提示

2021/04/18 01:37

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,73 @@
1
+ 2回目
2
+ ---
1
3
  ```Python
4
+ import sys
5
+ import time
6
+ import os
7
+ import pandas as pd
8
+ import cv2
9
+ import traceback # エラーが出た際にエラーが起きた旨の通知用に追加
10
+
11
+
12
+ df = pd.read_csv('/Users/username/banggood/img_ban.csv', encoding='cp932', dtype=object)
13
+
14
+ headers = {
15
+ "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0"}
16
+ for column_name, item in df.iteritems():
17
+
18
+ if column_name == 'url' or '_1' or '_2' or '_3' or '_4' or '_5' or '_6' or '_7' or '_8' or '_9':
19
+ for index, row in df.iterrows():
20
+
21
+ try:
22
+ url_separate = os.path.splitext(row[column_name])
23
+ url_extension = url_separate[1].replace('URL', '')
24
+ url_extension = url_extension.replace('#username', '')
25
+
26
+ request = urllib.request.Request(
27
+ row[column_name], headers=headers)
28
+ try:
29
+ mem = urllib.request.urlopen(request).read()
30
+
31
+ x = row['code'] + column_name.replace('URL', '') + ".jpeg"
32
+ with open('/Users/username/banggood/u/' + x, mode="wb") as f:
33
+ f.write(mem)
34
+ print(x)
35
+
36
+ if url_extension == ".gif":
37
+ print("!!!gif!!!")
38
+ else:
39
+ img = cv2.imread('/Users/username/banggood/u' + x)
40
+ print(img.shape)
41
+ img2 = cv2.resize(img, dsize=None, fx=0.5, fy=0.5)
42
+ cv2.imwrite(
43
+ '/ Users/username/banggood/u' + x, img2)
44
+
45
+ except urllib.error.HTTPError:
46
+ # print("エラー")
47
+ print("!!! HTTP エラー")
48
+ traceback.print_exc()
49
+ except Exception as err:
50
+ print("!!! HTTP エラー以外のエラー")
51
+ traceback.print_exc()
52
+ time.sleep(1)
53
+
54
+ except Exception as err:
55
+ print("!!! URL 関連のエラー")
56
+ traceback.print_exc()
57
+ # except AttributeError as error:
58
+ # print()
59
+ # except ValueError as error:
60
+ # print()
61
+ else:
62
+ print()
63
+
64
+ f.close()
65
+ ```
66
+
67
+
68
+ 初回分
69
+ ---
70
+ ```Python
2
71
  try:
3
72
  except:
4
73
  ```