当前,我正在加载一个Powershell文件,该文件将为我返回一个值。有没有办法更快地加载它?因为我的程序目前正在打开8个.ps1文件,所以要准备好使用它需要10到15秒。我可以启动程序,然后在程序已经运行时将字符串放入其中吗? (因为它是Tkinter GUI)
df1 <- structure(list(yearID = c(1994L, 1995L, 1996L, 1997L, 1998L,
1999L, 2000L, 2001L, 2002L, 2003L, 2004L, 2005L, 2006L, 2009L,
2010L), teamID = c("LAN", "LAN", "LAN", "LAN", "LAN", "LAN",
"LAN", "LAN", "TEX", "TEX", "TEX", "TEX", "SDN", "PHI", "NYA"
), salary = c(109000L, 114000L, 124000L, 270000L, 700000L, 2300000L,
3850000L, 9900000L, 6884803L, 13000000L, 14000000L, 15000000L,
15505142L, 2500000L, 1200000L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15"))
答案 0 :(得分:0)
您可以尝试一下是否更快:
import os
os.system("cmd /c powershell C:\\PowershellFiles\\bios_settings.ps1")
此外,我相信您的脚本正在按顺序在Powershell中执行脚本。我不知道这些脚本之间是否存在数据依赖关系,但是如果没有,则可以考虑使用线程并发运行所有脚本:
import os
import threading
cmds = [
"cmd /c powershell C:\\PowershellFiles\\bios_settings.ps1",
"cmd /c powershell C:\\PowershellFiles\\bios_settings.ps2",
"cmd /c powershell C:\\PowershellFiles\\bios_settings.ps3",
"cmd /c powershell C:\\PowershellFiles\\bios_settings.ps4",
"cmd /c powershell C:\\PowershellFiles\\bios_settings.ps5",
"cmd /c powershell C:\\PowershellFiles\\bios_settings.ps6",
"cmd /c powershell C:\\PowershellFiles\\bios_settings.ps7",
"cmd /c powershell C:\\PowershellFiles\\bios_settings.ps8"
]
def thread_function(index):
os.system(cmds[index])
for i in range(len(cmds)):
x = threading.Thread(target = thread_function, args = (i, ))
x.start()
答案 1 :(得分:0)
假设您将字符串放入标签中,则可以在创建标签后使用.configure()方法更改标签。因此,您可以创建tkinter GUI并在Powershell完成后使用.configure()对其进行更新。如果有任何使用的按钮,则可以等待稍后显示它们或禁用它们,直到powershell命令完成。
myLabel.configure(text=bios)
或者您可以使用stringVar对其进行更新。
bios = StringVar()
myLabel = Label(root, textvariable=bios)
p = subprocess.check_output(["powershell.exe", "C:\\PowershellFiles\\bios_settings.ps1"])
bios.set(str(p))
if bios.get() == 'b\'[BIOS:config:Network:MACAdressPassThr]disabled\\n\\r\\n\'':
bios.set('[BIOS:config:Network:MACAdressPassThr]\tdisabled')
else:
bios.set('[BIOS:config:Network:MACAdressPassThr]\tenabled')
但是,未处理的字符串会在那儿闪烁一秒钟。