Can';t使用任何方法打开带有python(3.8)脚本的Microsoft团队
我正在尝试制作一个脚本来自动登录到Microsoft团队,我的所有代码都可以正常工作,除了必须打开应用程序的部分。奇怪的是,它能够打开除MS团队以外的任何其他应用程序(Chrome、记事本、Firefox、Edge等) 以下是相关代码:Can';t使用任何方法打开带有python(3.8)脚本的Microsoft团队,python,python-3.x,subprocess,microsoft-teams,Python,Python 3.x,Subprocess,Microsoft Teams,我正在尝试制作一个脚本来自动登录到Microsoft团队,我的所有代码都可以正常工作,除了必须打开应用程序的部分。奇怪的是,它能够打开除MS团队以外的任何其他应用程序(Chrome、记事本、Firefox、Edge等) 以下是相关代码: def openfile(): if os.stat("stor.txt").st_size == 0: name = filedialog.askopenfilename() newfile = op
def openfile():
if os.stat("stor.txt").st_size == 0:
name = filedialog.askopenfilename()
newfile = open("stor.txt", "w")
newfile.write(name)
else:
name = (open("stor.txt", "r").read())
os.startfile(name)
sleep(5)
keyboard.write(open("user.txt", "r").read())
keyboard.press("enter")
sleep(3)
keyboard.write(open("pass.txt", "r").read())
keyboard.press("enter")
我用os.startfile
,os.system(start..)
和web上的其他方法尝试了这一点。不起作用
当我尝试运行团队时,我传递给
os.startfile()
的值是C:/Users/Raghav/AppData/Local/Microsoft/Teams/Update.exe
,首先,我不建议将密码以明文形式存储。它不是很安全,如果另一个程序在正确的时间获得关注,您的代码甚至会在其他地方键入您的密码
团队应在您首次登录后记住您的凭据。我建议让它来处理那个部分
在任何情况下,运行就像双击foo.exe
。您传入的文件名是C:/Users/Raghav/AppData/Local/Microsoft/Teams/Update.exe
,并且Update.exe
看起来不像我应该启动团队的东西
在我自己的开始菜单中查看团队快捷方式,我发现事情有点复杂。此快捷方式运行Update.exe
,并向其传递一些参数:
C:\…\Update.exe--processStart“Teams.exe”
无法使用os.startfile()
向程序传递参数。请尝试:
在Python中可以运行外部命令,但这可能是最简单的,因为您不需要团队的输出流。如果成功,此命令应返回0
,如果失败,则返回其他值
import os
os.system("C:\\Users\\Lenovo\\AppData\\Local\\Discord\\Update.exe --processStart Discord.exe")
对于具有上述地址的应用程序,还有一些提示:
\\
而不是单\\
这肯定会成功的✔ 旁注:将密码存储在硬盘上未加密的文件中可能不是最好的选择。团队是否会在第一次登录后自动离开您?当您运行
os.startfile(name)
时,name有什么值?@Chris字符串值是-C:/Users/Raghav/AppData/Local/Microsoft/Teams/Update.exe正如我所说,这个脚本可以打开除teamsIs之外的所有内容。如果我的用户名是两个单词,即语句中有一个中断,是否有任何方法可以克服出现的问题?例如,如果路径为-C:/Users/Raghav Sinha/AppDataTry在可执行文件的路径周围加引号:os.system(“'C:/Users/Raghav Sinha/AppData/Local/Microsoft/Teams/Update.exe”--processStart“Teams.exe”)
仍在获取:'C:/Users/Raghav'未被识别为内部或外部命令,
可操作的程序或批处理文件。虽然我不能测试它,但我会假设它可以工作。让我想办法解决这个问题。非常感谢。我的用户名中没有空格,但我可以使用os.system()
成功运行路径中带有空格的命令,例如os.system(r''C:\Program Files\PuTTY\PuTTY.exe')
。我只使用原始字符串,因为反斜杠如果使用正斜杠,则不需要它。
import os
os.system("C:\\Users\\Lenovo\\AppData\\Local\\Discord\\Update.exe --processStart Discord.exe")