【问题标题】:Converting a VBScript to Python将 VBScript 转换为 Python
【发布时间】:2015-05-21 19:11:42
【问题描述】:

我在 Windows 机器上运行了以下 vbscript:

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

它正是我需要它做的事情,但是在获取图片之后,我需要将它们发送到我使用 winscp 发送的 Linux 机器上。

我想从 Linux 服务器运行脚本,而不需要 wincp 和 windows 机器(我不喜欢从多个位置运行东西)。

我最近发现 Python 可以使用 pyodbc 连接到 Access 数据库。

我相信我了解如何连接到 access 数据库,但不确定如何从一列中提取二进制数据并用 Python 中的另一列标记它们。 (提取二进制数据是我在创建 VBScript 时遇到的最大障碍)

更新: 看起来我现在可以结束这个想法了,我没有意识到 Linux 上的所有 ODBC 驱动程序都需要花钱。现在正在寻找其他方法,比如jackness,它是一个直接的java连接到访问

【问题讨论】:

  • SO 不是免费翻译服务。您所要求的基本上是让她从头开始重写您的脚本,因为 VBScript 和 Python 不太相似。这不太可能发生。
  • 此页面应该让您开始了解转换它所需的大部分知识:code.google.com/p/pyodbc/wiki/GettingStarted 然而,Ansgar 说的是正确的;另外,你应该确保在运行之前知道你在运行什么代码。
  • 我不是在找你写脚本,只是在寻找可能有助于找到我需要的 python 代码片段。就像 FlipperPA 添加的链接一样。并添加了代码micebrain。当我得到代码的粗略大纲时,如果我能解决某些问题,我打算发布更多问题。

标签: python vbscript binary odbc pyodbc


【解决方案1】:

可以将列数据以二进制方式写入文件。

例如假设图像在第一列...


data = cursor.execute(selectstmt).fetchone()
with open('img.jpg', 'wb') as f:
    f.write(data[0])

【讨论】:

  • 在文件打开的第二个参数中 - wb = write binary
猜你喜欢
  • 2014-01-03
  • 2016-06-09
  • 2013-03-02
  • 1970-01-01
  • 2013-02-03
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多