将 VBScript 转换为 Python
Converting a VBScript to Python
我在 Windows 机器上有以下 vbscript 运行ning:
db = "\networklocation\Database\employeeID.mdb"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set mstream = CreateObject("ADODB.Stream")
'ADODB.Stream is need to transfer the BLOB Data as Binary
mstream.Type = 1 '' 1 is to: adTypeBinary
'for info on Stream: http://www.w3schools.com/asp/ado_ref_stream.asp
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; " & "Data Source =" & db
strSQL = "SELECT IDNumber,photo FROM employeeID WHERE IDNumber like 'A00______' and photo is not null"
'% for 0 or more characters, _ to replace a single character
rs.Open strSQL, cn
DO WHILE not rs.eof
mstream.Open
mstream.Write rs("photo")
mstream.SaveToFile "C:\images\all\" & rs("IDNumber") & ".jpg", 2 'adSaveCreateOveWrite
mstream.close
rs.movenext
Loop
它做的正是我需要它做的,但是在获取图片后,我需要将它们发送到 Linux 机器,我使用 winscp 发送。
我想运行来自Linux服务器的脚本,需要winscp和windows机器(我不喜欢运行ning来自多个位置的东西)不在等式中。
我最近发现 Python 可以使用 pyodbc 连接到 Access 数据库。
我相信我了解如何连接到访问数据库,但不确定如何从一列中提取二进制数据并在 Python 中用不同的列标记它们。 (提取二进制数据是我在创建 VBScript 时遇到的最大障碍)
更新:
看来我现在可以关闭这个想法了,我没有意识到 Linux 上的所有 ODBC 驱动程序都要花钱。现在正在寻找其他方法,例如直接 java 连接到 access
的 jackness
您可以将列数据以二进制方式写入文件。
例如假设图片在第一列...
data = cursor.execute(selectstmt).fetchone()
with open('img.jpg', 'wb') as f:
f.write(data[0])
我在 Windows 机器上有以下 vbscript 运行ning:
db = "\networklocation\Database\employeeID.mdb"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set mstream = CreateObject("ADODB.Stream")
'ADODB.Stream is need to transfer the BLOB Data as Binary
mstream.Type = 1 '' 1 is to: adTypeBinary
'for info on Stream: http://www.w3schools.com/asp/ado_ref_stream.asp
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; " & "Data Source =" & db
strSQL = "SELECT IDNumber,photo FROM employeeID WHERE IDNumber like 'A00______' and photo is not null"
'% for 0 or more characters, _ to replace a single character
rs.Open strSQL, cn
DO WHILE not rs.eof
mstream.Open
mstream.Write rs("photo")
mstream.SaveToFile "C:\images\all\" & rs("IDNumber") & ".jpg", 2 'adSaveCreateOveWrite
mstream.close
rs.movenext
Loop
它做的正是我需要它做的,但是在获取图片后,我需要将它们发送到 Linux 机器,我使用 winscp 发送。
我想运行来自Linux服务器的脚本,需要winscp和windows机器(我不喜欢运行ning来自多个位置的东西)不在等式中。
我最近发现 Python 可以使用 pyodbc 连接到 Access 数据库。
我相信我了解如何连接到访问数据库,但不确定如何从一列中提取二进制数据并在 Python 中用不同的列标记它们。 (提取二进制数据是我在创建 VBScript 时遇到的最大障碍)
更新: 看来我现在可以关闭这个想法了,我没有意识到 Linux 上的所有 ODBC 驱动程序都要花钱。现在正在寻找其他方法,例如直接 java 连接到 access
的 jackness您可以将列数据以二进制方式写入文件。
例如假设图片在第一列...
data = cursor.execute(selectstmt).fetchone()
with open('img.jpg', 'wb') as f:
f.write(data[0])