質問編集履歴
7
7. ソースコードなどの可読性を高めるために、ボールドや水平線などを入れた。
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,11 +10,11 @@
|
|
10
10
|
|
11
11
|
i. 環境
|
12
12
|
|
13
|
-
OS: Windows 10 Pro
|
13
|
+
1. OS: Windows 10 Pro
|
14
|
-
|
14
|
+
|
15
|
-
Python環境 Anaconda (version 1.7.2)
|
15
|
+
2. Python環境 Anaconda (version 1.7.2)
|
16
|
-
|
16
|
+
|
17
|
-
Excel
|
17
|
+
3. Excel MS Office 2013 Pro
|
18
18
|
|
19
19
|
|
20
20
|
|
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
A: 実現したいこと
|
31
|
+
A: ### 実現したいこと
|
32
32
|
|
33
33
|
|
34
34
|
|
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
-
B 行列数とデータ型
|
39
|
+
B ### 行数列数とデータ型
|
40
40
|
|
41
41
|
|
42
42
|
|
@@ -54,6 +54,8 @@
|
|
54
54
|
|
55
55
|
1. **SQLとfor文で複数の画像を一挙にスクレイピング**し、いったんデータベース(SQLite)に格納するところまでは、問題なく成功。
|
56
56
|
|
57
|
+
|
58
|
+
|
57
59
|
2. それらの画像データを読み込みExcelへ書き出しする時点で、失敗する。jupyter notebook上に表示させるくらいは可能だが、Excelの場合はやはりExcel独特のセル処理の問題があるので、何列何行目のセルにきちんと入らないとExcelデータにならないようです。
|
58
60
|
|
59
61
|
|
@@ -154,7 +156,7 @@
|
|
154
156
|
|
155
157
|
{' id':10', 'Structures':'10.png ':''}]
|
156
158
|
|
157
|
-
---
|
159
|
+
---------------------------------------------------------------------
|
158
160
|
|
159
161
|
**d = {}
|
160
162
|
|
@@ -176,7 +178,7 @@
|
|
176
178
|
|
177
179
|
```
|
178
180
|
|
179
|
-
|
181
|
+
---------------------------------------------------------------------
|
180
182
|
|
181
183
|
### 試したこと
|
182
184
|
|
@@ -260,7 +262,9 @@
|
|
260
262
|
|
261
263
|
|
262
264
|
|
263
|
-
---
|
265
|
+
------------------------------------------------------------------------
|
266
|
+
|
267
|
+
|
264
268
|
|
265
269
|
for row in wspp.values:
|
266
270
|
|
6
6. ソースコードなどの可読性を高めるために、ボールドや水平線などを入れた。
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,21 +52,21 @@
|
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
-
1. SQLとfor文で複数の画像を一挙にスクレイピングし、いったんデータベース(SQLite)に格納するところまでは、問題なく成功。
|
55
|
+
1. **SQLとfor文で複数の画像を一挙にスクレイピング**し、いったんデータベース(SQLite)に格納するところまでは、問題なく成功。
|
56
56
|
|
57
57
|
2. それらの画像データを読み込みExcelへ書き出しする時点で、失敗する。jupyter notebook上に表示させるくらいは可能だが、Excelの場合はやはりExcel独特のセル処理の問題があるので、何列何行目のセルにきちんと入らないとExcelデータにならないようです。
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
3. データ型を「リスト型」にすれば、for文でそのリストの中の画像を【add_image】メソッドで順次複数の画像を複数のセルの中に入れることは可能。現に、それでうまくいっています。
|
61
|
+
3. データ型を「リスト型」にすれば、for文でそのリストの中の画像を【**add_image**】メソッドで順次複数の画像を複数のセルの中に入れることは可能。現に、それでうまくいっています。
|
62
|
-
|
63
|
-
|
64
|
-
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
-
4. 目的はリストではなくあくまでもデータベースとしてSQL文で上記の処理を実現したいのです。なにしろ、扱う画像ファイルは何千何万とあるのですから、何千何万ものリストを手入力で記述することは現実的ではありません。
|
65
|
+
4. 目的はリストではなく**あくまでもデータベースとしてSQL文で上記の処理を実現したい**のです。なにしろ、扱う画像ファイルは何千何万とあるのですから、何千何万ものリストを手入力で記述することは現実的ではありません。
|
66
|
-
|
67
|
-
|
68
|
-
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
-
5. リストやタプルを変数化して短いコードで膨大な画像をExcelに格納できるのであればそれでもいいですから、とにかくこれらの画像をExcelシートのセルに入れるPythonコーディングをお教えください。
|
69
|
+
5. **リストやタプルを変数化して短いコードで膨大な画像をExcelに格納できるのであればそれでもいい**ですから、とにかくこれらの画像をExcelシートのセルに入れるPythonコーディングをお教えください。
|
70
70
|
|
71
71
|
|
72
72
|
|
@@ -154,23 +154,21 @@
|
|
154
154
|
|
155
155
|
{' id':10', 'Structures':'10.png ':''}]
|
156
156
|
|
157
|
-
|
157
|
+
---
|
158
|
-
|
159
|
-
|
160
|
-
|
158
|
+
|
161
|
-
|
159
|
+
**d = {}
|
162
|
-
|
160
|
+
|
163
|
-
|
161
|
+
for x in xlImages
|
164
|
-
|
162
|
+
|
165
|
-
|
163
|
+
if x not in d.keys():
|
166
|
-
|
164
|
+
|
167
|
-
|
165
|
+
d[x] = 1
|
168
|
-
|
166
|
+
|
169
|
-
|
167
|
+
else:
|
170
|
-
|
168
|
+
|
171
|
-
|
169
|
+
d[x] += 1
|
170
|
+
|
172
|
-
|
171
|
+
**
|
173
|
-
|
174
172
|
|
175
173
|
wbbk.save('New_myImages.xlsx')
|
176
174
|
|
@@ -262,6 +260,8 @@
|
|
262
260
|
|
263
261
|
|
264
262
|
|
263
|
+
---
|
264
|
+
|
265
265
|
for row in wspp.values:
|
266
266
|
|
267
267
|
sqlstr = "INSERT INTO TABLE1 ('id, 'Structures') VALUES(?,?)"
|
5
5. ソースコードとスクレイピングを可視化するために、アセチルカルニチン(カルニチン誘導体の一種)の画像データを添付。
test
CHANGED
File without changes
|
test
CHANGED
@@ -359,3 +359,7 @@
|
|
359
359
|
|
360
360
|
|
361
361
|
### 補足情報(FW/ツールのバージョンなど)
|
362
|
+
|
363
|
+
!["1.png"アセチルカルニチン(カルニチン誘導体の一種)の画像データ](322f2fe988e6fde3462fb2824970be26.png)
|
364
|
+
|
365
|
+
NCBI(米国立生物工学情報センター)の化学医学データベースサイトPubChemからidと2D画像データ(分子模型、化学組成)をスクレイピング。ちなみに、その1番目は、Acetylcarnitine。アセチルカルニチン(カルニチン誘導体の一種)で、2D画像データも参考のためUpしておきます。URLは、[リンク内容](https://pubchem.ncbi.nlm.nih.gov/compound/1)
|
4
4. ソースコードを<code>ボタンよりマークアップ開始
test
CHANGED
File without changes
|
test
CHANGED
@@ -108,7 +108,7 @@
|
|
108
108
|
|
109
109
|
# SQLを実行
|
110
110
|
|
111
|
-
```
|
111
|
+
```SQL
|
112
112
|
|
113
113
|
c.execute(DROP_TABLE)
|
114
114
|
|
@@ -228,7 +228,7 @@
|
|
228
228
|
|
229
229
|
(id INTEGER PRIMARY KEY,
|
230
230
|
|
231
|
-
Structures BLOB)''
|
231
|
+
Structures BLOB)'''
|
232
232
|
|
233
233
|
|
234
234
|
|
@@ -244,7 +244,7 @@
|
|
244
244
|
|
245
245
|
c.execute(DROP_TABLE)
|
246
246
|
|
247
|
-
c.execute(CREATE_
|
247
|
+
c.execute(CREATE_TABLE1)
|
248
248
|
|
249
249
|
|
250
250
|
|
3
3. ソースコードを<code>ボタンよりマークアップ開始
test
CHANGED
File without changes
|
test
CHANGED
@@ -100,146 +100,152 @@
|
|
100
100
|
|
101
101
|
# 「カーソル」を取得
|
102
102
|
|
103
|
+
```ここに言語を入力
|
104
|
+
|
103
105
|
c = conn.cursor()
|
104
106
|
|
107
|
+
```
|
108
|
+
|
105
109
|
# SQLを実行
|
106
110
|
|
107
|
-
```
|
111
|
+
```Python & SQL
|
108
112
|
|
109
113
|
c.execute(DROP_TABLE)
|
110
114
|
|
115
|
+
c.execute(CREATE_TABLE1)
|
116
|
+
|
117
|
+
```
|
118
|
+
|
119
|
+
エラーメッセージ
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
OSError: cannot identify image file '11.png'
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
### 該当のソースコード
|
128
|
+
|
129
|
+
```Python
|
130
|
+
|
131
|
+
from openpyxl.drawing.image import Image
|
132
|
+
|
133
|
+
from openpyxl.styles import Alignment
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
xlImages = [{'id':1', 'Structures':'1.png'},
|
138
|
+
|
139
|
+
{' id':2', 'Structures':'2.png,
|
140
|
+
|
141
|
+
{' id':3', 'Structures':'3.png,
|
142
|
+
|
143
|
+
{' id':4', 'Structures':'4.png,
|
144
|
+
|
145
|
+
{' id':5', 'Structures':'5.png,
|
146
|
+
|
147
|
+
{' id':6', 'Structures':'6.png,
|
148
|
+
|
149
|
+
{' id':7', 'Structures':'7.png,
|
150
|
+
|
151
|
+
{' id':8', 'Structures':'8.png,
|
152
|
+
|
153
|
+
{' id':9', 'Structures':'9.png,
|
154
|
+
|
155
|
+
{' id':10', 'Structures':'10.png ':''}]
|
156
|
+
|
157
|
+
-------------------------------中略-------------------------
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
# d = {}
|
162
|
+
|
163
|
+
# for x in xlImages
|
164
|
+
|
165
|
+
# if x not in d.keys():
|
166
|
+
|
167
|
+
# d[x] = 1
|
168
|
+
|
169
|
+
# else:
|
170
|
+
|
171
|
+
# d[x] += 1
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
wbbk.save('New_myImages.xlsx')
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
```
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
### 試したこと
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
```Python
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
import sqlite3
|
192
|
+
|
193
|
+
import openpyxl as px
|
194
|
+
|
195
|
+
import sqlalchemy as sa
|
196
|
+
|
197
|
+
import requests
|
198
|
+
|
199
|
+
import cv2
|
200
|
+
|
201
|
+
import pandas as pd
|
202
|
+
|
203
|
+
import numpy as np
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
dbName = 'pyDataBase.db'
|
208
|
+
|
209
|
+
dbPath = r'C:\Users\shin\python_sqlite3\PubChem\pyDataBase.db'
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
xlBook = 'xlDataBase.xlsx'
|
214
|
+
|
215
|
+
xlPath = r'C:\Users\shin\python_sqlite3\PubChem\xlDataBase.xlsx'
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
# テーブル作成をやり直したいときに備えます
|
220
|
+
|
221
|
+
DROP_TABLE = "DROP TABLE IF EXISTS TABLE1"
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
# テーブルの定義と作成
|
226
|
+
|
227
|
+
CREATE_ TABLE1 = '''CREATE TABLE TABLE1
|
228
|
+
|
229
|
+
(id INTEGER PRIMARY KEY,
|
230
|
+
|
231
|
+
Structures BLOB)''
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
# データベースを新規作成(DBに【接続】)
|
236
|
+
|
237
|
+
conn = sqlite3.connect(' pyDataBase.db ')
|
238
|
+
|
239
|
+
# 「カーソル」を取得
|
240
|
+
|
241
|
+
c = conn.cursor()
|
242
|
+
|
243
|
+
# SQLを実行
|
244
|
+
|
245
|
+
c.execute(DROP_TABLE)
|
246
|
+
|
111
247
|
c.execute(CREATE_ TABLE1)
|
112
248
|
|
113
|
-
```
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
エラーメッセージ
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
OSError: cannot identify image file '11.png'
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
### 該当のソースコード
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
from openpyxl.drawing.image import Image
|
132
|
-
|
133
|
-
from openpyxl.styles import Alignment
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
xlImages = [{'id':1', 'Structures':'1.png'},
|
138
|
-
|
139
|
-
{' id':2', 'Structures':'2.png,
|
140
|
-
|
141
|
-
{' id':3', 'Structures':'3.png,
|
142
|
-
|
143
|
-
{' id':4', 'Structures':'4.png,
|
144
|
-
|
145
|
-
{' id':5', 'Structures':'5.png,
|
146
|
-
|
147
|
-
{' id':6', 'Structures':'6.png,
|
148
|
-
|
149
|
-
{' id':7', 'Structures':'7.png,
|
150
|
-
|
151
|
-
{' id':8', 'Structures':'8.png,
|
152
|
-
|
153
|
-
{' id':9', 'Structures':'9.png,
|
154
|
-
|
155
|
-
{' id':10', 'Structures':'10.png ':''}]
|
156
|
-
|
157
|
-
-------------------------------中略-------------------------------------
|
158
|
-
|
159
|
-
# d = {}
|
160
|
-
|
161
|
-
# for x in xlImages
|
162
|
-
|
163
|
-
# if x not in d.keys():
|
164
|
-
|
165
|
-
# d[x] = 1
|
166
|
-
|
167
|
-
# else:
|
168
|
-
|
169
|
-
# d[x] += 1
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
wbbk.save('New_myImages.xlsx')
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
### 試したこと
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
import sqlite3
|
186
|
-
|
187
|
-
import openpyxl as px
|
188
|
-
|
189
|
-
import sqlalchemy as sa
|
190
|
-
|
191
|
-
import requests
|
192
|
-
|
193
|
-
import cv2
|
194
|
-
|
195
|
-
import pandas as pd
|
196
|
-
|
197
|
-
import numpy as np
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
dbName = 'pyDataBase.db'
|
202
|
-
|
203
|
-
dbPath = r'C:\Users\shin\python_sqlite3\PubChem\pyDataBase.db'
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
xlBook = 'xlDataBase.xlsx'
|
208
|
-
|
209
|
-
xlPath = r'C:\Users\shin\python_sqlite3\PubChem\xlDataBase.xlsx'
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
# テーブル作成をやり直したいときに備えます
|
214
|
-
|
215
|
-
DROP_TABLE = "DROP TABLE IF EXISTS TABLE1"
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
# テーブルの定義と作成
|
220
|
-
|
221
|
-
CREATE_ TABLE1 = '''CREATE TABLE TABLE1
|
222
|
-
|
223
|
-
(id INTEGER PRIMARY KEY,
|
224
|
-
|
225
|
-
Structures BLOB)''
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
# データベースを新規作成(DBに【接続】)
|
230
|
-
|
231
|
-
conn = sqlite3.connect(' pyDataBase.db ')
|
232
|
-
|
233
|
-
# 「カーソル」を取得
|
234
|
-
|
235
|
-
c = conn.cursor()
|
236
|
-
|
237
|
-
# SQLを実行
|
238
|
-
|
239
|
-
c.execute(DROP_TABLE)
|
240
|
-
|
241
|
-
c.execute(CREATE_ TABLE1)
|
242
|
-
|
243
249
|
|
244
250
|
|
245
251
|
# 【INSERT文】に挿入するナマ・データを直接記述することはセキュリティ面で問題になるので、プレースホルダの?で代替
|
@@ -346,4 +352,10 @@
|
|
346
352
|
|
347
353
|
conn.close() # 接続解除
|
348
354
|
|
355
|
+
|
356
|
+
|
357
|
+
```
|
358
|
+
|
359
|
+
|
360
|
+
|
349
361
|
### 補足情報(FW/ツールのバージョンなど)
|
2
2. ソースコードを<code>ボタンよりマークアップ開始_2
test
CHANGED
File without changes
|
test
CHANGED
@@ -92,12 +92,144 @@
|
|
92
92
|
|
93
93
|
# データベースを新規作成(DBに【接続】)
|
94
94
|
|
95
|
+
```Python
|
96
|
+
|
97
|
+
conn = sqlite3.connect('pyDataBase.db')
|
98
|
+
|
99
|
+
```
|
100
|
+
|
101
|
+
# 「カーソル」を取得
|
102
|
+
|
103
|
+
c = conn.cursor()
|
104
|
+
|
105
|
+
# SQLを実行
|
106
|
+
|
95
107
|
```ここに言語を入力
|
96
108
|
|
109
|
+
c.execute(DROP_TABLE)
|
110
|
+
|
97
|
-
c
|
111
|
+
c.execute(CREATE_ TABLE1)
|
98
112
|
|
99
113
|
```
|
100
114
|
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
エラーメッセージ
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
OSError: cannot identify image file '11.png'
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
### 該当のソースコード
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
from openpyxl.drawing.image import Image
|
132
|
+
|
133
|
+
from openpyxl.styles import Alignment
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
xlImages = [{'id':1', 'Structures':'1.png'},
|
138
|
+
|
139
|
+
{' id':2', 'Structures':'2.png,
|
140
|
+
|
141
|
+
{' id':3', 'Structures':'3.png,
|
142
|
+
|
143
|
+
{' id':4', 'Structures':'4.png,
|
144
|
+
|
145
|
+
{' id':5', 'Structures':'5.png,
|
146
|
+
|
147
|
+
{' id':6', 'Structures':'6.png,
|
148
|
+
|
149
|
+
{' id':7', 'Structures':'7.png,
|
150
|
+
|
151
|
+
{' id':8', 'Structures':'8.png,
|
152
|
+
|
153
|
+
{' id':9', 'Structures':'9.png,
|
154
|
+
|
155
|
+
{' id':10', 'Structures':'10.png ':''}]
|
156
|
+
|
157
|
+
-------------------------------中略-------------------------------------
|
158
|
+
|
159
|
+
# d = {}
|
160
|
+
|
161
|
+
# for x in xlImages
|
162
|
+
|
163
|
+
# if x not in d.keys():
|
164
|
+
|
165
|
+
# d[x] = 1
|
166
|
+
|
167
|
+
# else:
|
168
|
+
|
169
|
+
# d[x] += 1
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
wbbk.save('New_myImages.xlsx')
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
### 試したこと
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
import sqlite3
|
186
|
+
|
187
|
+
import openpyxl as px
|
188
|
+
|
189
|
+
import sqlalchemy as sa
|
190
|
+
|
191
|
+
import requests
|
192
|
+
|
193
|
+
import cv2
|
194
|
+
|
195
|
+
import pandas as pd
|
196
|
+
|
197
|
+
import numpy as np
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
dbName = 'pyDataBase.db'
|
202
|
+
|
203
|
+
dbPath = r'C:\Users\shin\python_sqlite3\PubChem\pyDataBase.db'
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
xlBook = 'xlDataBase.xlsx'
|
208
|
+
|
209
|
+
xlPath = r'C:\Users\shin\python_sqlite3\PubChem\xlDataBase.xlsx'
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
# テーブル作成をやり直したいときに備えます
|
214
|
+
|
215
|
+
DROP_TABLE = "DROP TABLE IF EXISTS TABLE1"
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
# テーブルの定義と作成
|
220
|
+
|
221
|
+
CREATE_ TABLE1 = '''CREATE TABLE TABLE1
|
222
|
+
|
223
|
+
(id INTEGER PRIMARY KEY,
|
224
|
+
|
225
|
+
Structures BLOB)''
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
# データベースを新規作成(DBに【接続】)
|
230
|
+
|
231
|
+
conn = sqlite3.connect(' pyDataBase.db ')
|
232
|
+
|
101
233
|
# 「カーソル」を取得
|
102
234
|
|
103
235
|
c = conn.cursor()
|
@@ -110,132 +242,6 @@
|
|
110
242
|
|
111
243
|
|
112
244
|
|
113
|
-
エラーメッセージ
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
OSError: cannot identify image file '11.png'
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
### 該当のソースコード
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
from openpyxl.drawing.image import Image
|
126
|
-
|
127
|
-
from openpyxl.styles import Alignment
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
xlImages = [{'id':1', 'Structures':'1.png'},
|
132
|
-
|
133
|
-
{' id':2', 'Structures':'2.png,
|
134
|
-
|
135
|
-
{' id':3', 'Structures':'3.png,
|
136
|
-
|
137
|
-
{' id':4', 'Structures':'4.png,
|
138
|
-
|
139
|
-
{' id':5', 'Structures':'5.png,
|
140
|
-
|
141
|
-
{' id':6', 'Structures':'6.png,
|
142
|
-
|
143
|
-
{' id':7', 'Structures':'7.png,
|
144
|
-
|
145
|
-
{' id':8', 'Structures':'8.png,
|
146
|
-
|
147
|
-
{' id':9', 'Structures':'9.png,
|
148
|
-
|
149
|
-
{' id':10', 'Structures':'10.png ':''}]
|
150
|
-
|
151
|
-
-------------------------------中略-------------------------------------
|
152
|
-
|
153
|
-
# d = {}
|
154
|
-
|
155
|
-
# for x in xlImages
|
156
|
-
|
157
|
-
# if x not in d.keys():
|
158
|
-
|
159
|
-
# d[x] = 1
|
160
|
-
|
161
|
-
# else:
|
162
|
-
|
163
|
-
# d[x] += 1
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
wbbk.save('New_myImages.xlsx')
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
### 試したこと
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
import sqlite3
|
180
|
-
|
181
|
-
import openpyxl as px
|
182
|
-
|
183
|
-
import sqlalchemy as sa
|
184
|
-
|
185
|
-
import requests
|
186
|
-
|
187
|
-
import cv2
|
188
|
-
|
189
|
-
import pandas as pd
|
190
|
-
|
191
|
-
import numpy as np
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
dbName = 'pyDataBase.db'
|
196
|
-
|
197
|
-
dbPath = r'C:\Users\shin\python_sqlite3\PubChem\pyDataBase.db'
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
xlBook = 'xlDataBase.xlsx'
|
202
|
-
|
203
|
-
xlPath = r'C:\Users\shin\python_sqlite3\PubChem\xlDataBase.xlsx'
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
# テーブル作成をやり直したいときに備えます
|
208
|
-
|
209
|
-
DROP_TABLE = "DROP TABLE IF EXISTS TABLE1"
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
# テーブルの定義と作成
|
214
|
-
|
215
|
-
CREATE_ TABLE1 = '''CREATE TABLE TABLE1
|
216
|
-
|
217
|
-
(id INTEGER PRIMARY KEY,
|
218
|
-
|
219
|
-
Structures BLOB)''
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
# データベースを新規作成(DBに【接続】)
|
224
|
-
|
225
|
-
conn = sqlite3.connect(' pyDataBase.db ')
|
226
|
-
|
227
|
-
# 「カーソル」を取得
|
228
|
-
|
229
|
-
c = conn.cursor()
|
230
|
-
|
231
|
-
# SQLを実行
|
232
|
-
|
233
|
-
c.execute(DROP_TABLE)
|
234
|
-
|
235
|
-
c.execute(CREATE_ TABLE1)
|
236
|
-
|
237
|
-
|
238
|
-
|
239
245
|
# 【INSERT文】に挿入するナマ・データを直接記述することはセキュリティ面で問題になるので、プレースホルダの?で代替
|
240
246
|
|
241
247
|
# executeメソッドの引数にはSQL文と、かつ挿入する実際値をリストやタプルの形で指定。今回は【文字列のタプルであるrow】を指定
|
1
1. ソースコードを<code>ボタンよりマークアップ開始_1
test
CHANGED
File without changes
|
test
CHANGED
@@ -92,6 +92,136 @@
|
|
92
92
|
|
93
93
|
# データベースを新規作成(DBに【接続】)
|
94
94
|
|
95
|
+
```ここに言語を入力
|
96
|
+
|
97
|
+
conn = sqlite3.connect('pyDataBase.db')
|
98
|
+
|
99
|
+
```
|
100
|
+
|
101
|
+
# 「カーソル」を取得
|
102
|
+
|
103
|
+
c = conn.cursor()
|
104
|
+
|
105
|
+
# SQLを実行
|
106
|
+
|
107
|
+
c.execute(DROP_TABLE)
|
108
|
+
|
109
|
+
c.execute(CREATE_ TABLE1)
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
エラーメッセージ
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
OSError: cannot identify image file '11.png'
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
### 該当のソースコード
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
from openpyxl.drawing.image import Image
|
126
|
+
|
127
|
+
from openpyxl.styles import Alignment
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
xlImages = [{'id':1', 'Structures':'1.png'},
|
132
|
+
|
133
|
+
{' id':2', 'Structures':'2.png,
|
134
|
+
|
135
|
+
{' id':3', 'Structures':'3.png,
|
136
|
+
|
137
|
+
{' id':4', 'Structures':'4.png,
|
138
|
+
|
139
|
+
{' id':5', 'Structures':'5.png,
|
140
|
+
|
141
|
+
{' id':6', 'Structures':'6.png,
|
142
|
+
|
143
|
+
{' id':7', 'Structures':'7.png,
|
144
|
+
|
145
|
+
{' id':8', 'Structures':'8.png,
|
146
|
+
|
147
|
+
{' id':9', 'Structures':'9.png,
|
148
|
+
|
149
|
+
{' id':10', 'Structures':'10.png ':''}]
|
150
|
+
|
151
|
+
-------------------------------中略-------------------------------------
|
152
|
+
|
153
|
+
# d = {}
|
154
|
+
|
155
|
+
# for x in xlImages
|
156
|
+
|
157
|
+
# if x not in d.keys():
|
158
|
+
|
159
|
+
# d[x] = 1
|
160
|
+
|
161
|
+
# else:
|
162
|
+
|
163
|
+
# d[x] += 1
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
wbbk.save('New_myImages.xlsx')
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
### 試したこと
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
import sqlite3
|
180
|
+
|
181
|
+
import openpyxl as px
|
182
|
+
|
183
|
+
import sqlalchemy as sa
|
184
|
+
|
185
|
+
import requests
|
186
|
+
|
187
|
+
import cv2
|
188
|
+
|
189
|
+
import pandas as pd
|
190
|
+
|
191
|
+
import numpy as np
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
dbName = 'pyDataBase.db'
|
196
|
+
|
197
|
+
dbPath = r'C:\Users\shin\python_sqlite3\PubChem\pyDataBase.db'
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
xlBook = 'xlDataBase.xlsx'
|
202
|
+
|
203
|
+
xlPath = r'C:\Users\shin\python_sqlite3\PubChem\xlDataBase.xlsx'
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
# テーブル作成をやり直したいときに備えます
|
208
|
+
|
209
|
+
DROP_TABLE = "DROP TABLE IF EXISTS TABLE1"
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
# テーブルの定義と作成
|
214
|
+
|
215
|
+
CREATE_ TABLE1 = '''CREATE TABLE TABLE1
|
216
|
+
|
217
|
+
(id INTEGER PRIMARY KEY,
|
218
|
+
|
219
|
+
Structures BLOB)''
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
# データベースを新規作成(DBに【接続】)
|
224
|
+
|
95
225
|
conn = sqlite3.connect(' pyDataBase.db ')
|
96
226
|
|
97
227
|
# 「カーソル」を取得
|
@@ -106,132 +236,6 @@
|
|
106
236
|
|
107
237
|
|
108
238
|
|
109
|
-
エラーメッセージ
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
OSError: cannot identify image file '11.png'
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
### 該当のソースコード
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
from openpyxl.drawing.image import Image
|
122
|
-
|
123
|
-
from openpyxl.styles import Alignment
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
xlImages = [{'id':1', 'Structures':'1.png'},
|
128
|
-
|
129
|
-
{' id':2', 'Structures':'2.png,
|
130
|
-
|
131
|
-
{' id':3', 'Structures':'3.png,
|
132
|
-
|
133
|
-
{' id':4', 'Structures':'4.png,
|
134
|
-
|
135
|
-
{' id':5', 'Structures':'5.png,
|
136
|
-
|
137
|
-
{' id':6', 'Structures':'6.png,
|
138
|
-
|
139
|
-
{' id':7', 'Structures':'7.png,
|
140
|
-
|
141
|
-
{' id':8', 'Structures':'8.png,
|
142
|
-
|
143
|
-
{' id':9', 'Structures':'9.png,
|
144
|
-
|
145
|
-
{' id':10', 'Structures':'10.png ':''}]
|
146
|
-
|
147
|
-
-------------------------------中略-------------------------------------
|
148
|
-
|
149
|
-
# d = {}
|
150
|
-
|
151
|
-
# for x in xlImages
|
152
|
-
|
153
|
-
# if x not in d.keys():
|
154
|
-
|
155
|
-
# d[x] = 1
|
156
|
-
|
157
|
-
# else:
|
158
|
-
|
159
|
-
# d[x] += 1
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
wbbk.save('New_myImages.xlsx')
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
### 試したこと
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
import sqlite3
|
176
|
-
|
177
|
-
import openpyxl as px
|
178
|
-
|
179
|
-
import sqlalchemy as sa
|
180
|
-
|
181
|
-
import requests
|
182
|
-
|
183
|
-
import cv2
|
184
|
-
|
185
|
-
import pandas as pd
|
186
|
-
|
187
|
-
import numpy as np
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
dbName = 'pyDataBase.db'
|
192
|
-
|
193
|
-
dbPath = r'C:\Users\shin\python_sqlite3\PubChem\pyDataBase.db'
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
xlBook = 'xlDataBase.xlsx'
|
198
|
-
|
199
|
-
xlPath = r'C:\Users\shin\python_sqlite3\PubChem\xlDataBase.xlsx'
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
# テーブル作成をやり直したいときに備えます
|
204
|
-
|
205
|
-
DROP_TABLE = "DROP TABLE IF EXISTS TABLE1"
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
# テーブルの定義と作成
|
210
|
-
|
211
|
-
CREATE_ TABLE1 = '''CREATE TABLE TABLE1
|
212
|
-
|
213
|
-
(id INTEGER PRIMARY KEY,
|
214
|
-
|
215
|
-
Structures BLOB)''
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
# データベースを新規作成(DBに【接続】)
|
220
|
-
|
221
|
-
conn = sqlite3.connect(' pyDataBase.db ')
|
222
|
-
|
223
|
-
# 「カーソル」を取得
|
224
|
-
|
225
|
-
c = conn.cursor()
|
226
|
-
|
227
|
-
# SQLを実行
|
228
|
-
|
229
|
-
c.execute(DROP_TABLE)
|
230
|
-
|
231
|
-
c.execute(CREATE_ TABLE1)
|
232
|
-
|
233
|
-
|
234
|
-
|
235
239
|
# 【INSERT文】に挿入するナマ・データを直接記述することはセキュリティ面で問題になるので、プレースホルダの?で代替
|
236
240
|
|
237
241
|
# executeメソッドの引数にはSQL文と、かつ挿入する実際値をリストやタプルの形で指定。今回は【文字列のタプルであるrow】を指定
|