【问题标题】:Python. Open another program in for loopPython。在for循环中打开另一个程序
【发布时间】:2023-01-12 00:54:01
【问题描述】:

我正在用 Python 创建一个程序,但我遇到了 for 循环和在此循环中打开程序的问题。 该程序应该运行,例如5次,它只运行一次

import subprocess

z = int(input())

def run():
    subprocess.run('notepad.exe')

a = 0
while(a<z):
    a = a + 1
    run()

我试过创建一个函数并将 for 循环替换为 while 循环,但它不起作用。对不起我的英语不好

【问题讨论】:

  • 也许是因为记事本不允许多个实例?
  • 您是否尝试过run() 是否单独工作? while 循环对我来说很好。
  • @ScottHunter 它运行一次
  • @AronAtillaHegedus 在尽管是一样的
  • @Rocket 我在下面给出了对我有用的答案

标签: python


【解决方案1】:

使用subprocess.Popen('notepad.exe'),这会将进程置于后台。

subprocess.run() 将等待我认为的退出代码,它会等到您关闭记事本。

所以完整的代码是

import subprocess

z = int(input())

def run():
    subprocess.Popen('notepad.exe')

a = 0
while(a<z):
    a = a + 1
    run()

【讨论】:

【解决方案2】:

您需要先执行 pip install AppOpener(或者为您的设备安装模块)。

from AppOpener import open

z = int(input('Enter the number of times to open notepad: '))

def run():
    open('notepad')
    

a = 0
while(a < z):
    a = a + 1
    run()

此外,要运行任何不同的应用程序,只需将“记事本”更改为应用程序的名称即可。 (例如:'facebook')

【讨论】:

    【解决方案3】:

    现在这取决于你想要什么。 subprocess.run() 打开程序,并暂停代码,直到您关闭记事本。然后,它会重新打开它,并重复多次。

    如果你想打开 z 记事本的许多实例同时你需要使用 `subprocess.Popen('notepad.exe', '-new-tab')

    从代码的外观来看,这可能是也可能不是问题。 Python 不知道 notepad.exe 位于何处。您需要添加可执行文件的完整路径。例如,试试这个:

    import subprocess
    
    z = int(input())
    
    def run():
        subprocess.run(r'C:WINDOWSsystem32
    otepad.exe') #For most people this is the location of notepad.exe
    
    a = 0
    while(a<z):
        a = a + 1
        run()
    

    【讨论】:

    • 他说它只运行一次
    • 这会运行 z 很多次
    • 为什么他的代码在没有指定绝对路径的情况下至少运行一次?
    • 我也可以在不给出完整路径的情况下运行。有些文件夹在你的PATH,所以你不需要指定
    • 取决于个人
    猜你喜欢
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多