Can';t使用任何方法打开带有python(3.8)脚本的Microsoft团队

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

我正在尝试制作一个脚本来自动登录到Microsoft团队,我的所有代码都可以正常工作,除了必须打开应用程序的部分。奇怪的是,它能够打开除MS团队以外的任何其他应用程序(Chrome、记事本、Firefox、Edge等)

以下是相关代码:

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")
对于具有上述地址的应用程序,还有一些提示:

  • 有时地址中的文件名有“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")