python与vb可以互换吗_vb和python混合编程

展开全部

解题思路:把 Python 设计成带命令行参数调用的形式

在 VB6 中借助 IWshRuntimeLibrary.WshShell.Exec() 方法进行命令行参数调用

通过 IWshRuntimeLibrary.WshExec.StdOut.ReadAll() 方法读取命令行传e69da5e887aa62616964757a686964616f31333431346339回的结果

VB6 代码:Option Explicit

Private Sub Command1_Click()

' 请修改 CalcExp.py 为本地路径.

Text1.Text = ExecuteCommandLine("Python CalcExp.py -e """ & Text1.Text & """")

End Sub

' 执行命令行并返回结果.

Public Function ExecuteCommandLine(ByVal CommandLine As String) As String

Dim objWshShell As Object

On Error Resume Next

Set objWshShell = CreateObject("WScript.Shell")

If Not (objWshShell Is Nothing) Then

Dim objWshExec As Object

Set objWshExec = objWshShell.Exec(CommandLine)

ExecuteCommandLine = objWshExec.StdOut.ReadAll()

Set objWshExec = Nothing

Set objWshShell = Nothing

End If

End Function

Python 代码(CalcExp.py):import sys, getopt

from os import path

def calc(args):

return eval(args)

def GetCmdLine(args):

'''

从命令行读取输入的参数

'''

strCmdLne = ""

try:

lstOpts, lstArgs = getopt.getopt(args, "he:")

except getopt.GetoptError:

print("参数错误: 应为 -e")

sys.exit(2)

for strOpt, strArg in lstOpts:

if strOpt == "-h":

print("用法: %s -e <表达式>" % \

(path.basename(sys._getframe().f_code.co_filename)))

sys.exit()

elif strOpt == "-e":

strCmdLne = strArg

return strCmdLne

if __name__ == "__main__":

strExpression = GetCmdLine(sys.argv[1:])

if strExpression != "":

print(calc(strExpression))

动画演示:

resize,m_lfit,w_600,h_800,limit_1

PS:使用 IWshRuntimeLibrary.WshShell.Exec() 方法时会弹出命令行窗口!

扩展:Python 自带的 tkinter 库也可以创建界面的,建议你去看看这个库的使用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值