[英]Parsing and structuring VBScript into Python code using Python
我是編程的初學者,想知道最簡單的方法。
我有VBS代碼,我想使用python腳本將其轉換為python代碼。
樣例代碼:
oDesign.ChangeProperty Array("NAME:AllTabs", Array("NAME:LocalVariableTab", Array("NAME:PropServers", "LocalVariables"), Array("NAME:NewProps", Array("NAME:ps2pad", "PropType:=", "VariableProp", "UserDef:=", true, "Value:=", "31mil")), Array("NAME:ChangedProps", Array("NAME:ps2pad", "Hidden:=", false))))
要更改為Python腳本,它需要看起來像這樣:
oDesign.ChangeProperty(
[
"NAME:AllTabs",
[
"NAME:LocalVariableTab",
[
"NAME:PropServers",
"LocalVariables"
],
[
"NAME:NewProps",
[
"NAME:ps1drill",
"PropType:=" , "VariableProp",
"UserDef:=" , True,
"Value:=" , "17.7mil"
]
],
[
"NAME:ChangedProps",
[
"NAME:ps1drill",
"Hidden:=" , False,
"Value:=" , "17.7mil"
]
]
]
])
這不是確切的代碼,但是與我正在使用的代碼相當接近。 如您所見,只有幾處不同:必須丟棄所有“ Array”語句,添加一些括號,並添加括號。
我當時正在考慮使用正則表達式,但這似乎有些冗長。
我不確定執行嘗試的優點,但是如果您只想將其轉換為有效的python代碼,則可以從以下步驟開始:
Array
函數或類 然后在示例代碼的末尾添加一個'('),並在示例代碼的末尾添加另一個')',將進行編譯:
例如。
import pprint
class Design:
def ChangeProperty(*val):
pprint.pprint(val)
true = True
false = False
Array = lambda * v: v
oDesign = Design()
# now with the simple addition of the two parentheses I mentioned above,
# your VBS code is valid python.
oDesign.ChangeProperty(Array("NAME:AllTabs", Array("NAME:LocalVariableTab", Array("NAME:PropServers", "LocalVariables"), Array("NAME:NewProps", Array("NAME:ps2pad", "PropType:=", "VariableProp", "UserDef:=", true, "Value:=", "31mil")), Array("NAME:ChangedProps", Array("NAME:ps2pad", "Hidden:=", false)))))
#現在是有效的python代碼,並在我的系統上打印此代碼:
(<__main__.Design instance at 0x000000000248AF08>,
('NAME:AllTabs',
('NAME:LocalVariableTab',
('NAME:PropServers', 'LocalVariables'),
('NAME:NewProps',
('NAME:ps2pad',
'PropType:=',
'VariableProp',
'UserDef:=',
True,
'Value:=',
'31mil')),
('NAME:ChangedProps', ('NAME:ps2pad', 'Hidden:=', False)))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.