使用python中的参数从其他文件夹运行脚本(如cmd)

时间:2018-08-17 14:56:10

标签: python cmd subprocess

我想我必须使用os.system或subprocess.call,但是我不知道如何使用它。

我没有编辑原始文件夹的权限。

subprocess.Popen('file.py', cwd=dirName)给我“系统找不到指定的文件”,即使该文件明确存在

如果我输入的是cmd,

cd directory
file.py -arg

编辑:为了清楚起见,我想使用python脚本运行另一个脚本

3 个答案:

答案 0 :(得分:1)

当您用cmd标记问题时,我假设您使用Windows。 Windows足以在cmd中键入文档名称时自动使用适当的命令,而Python子进程则不能。所以这里有2种可能的方法

  1. 使用shell=True要求cmd解释器执行命令:

    subprocess.Popen('file.py', cwd=dirName, shell=True)
    
  2. 显式传递Python解释器的路径(如果在路径中则为名称)

    subprocess.Popen([python_path, 'file.py'], cwd=dirName, shell=True)
    

答案 1 :(得分:0)

首先,您需要在Windows环境中添加python。 然后,您可以添加文件路径(要在命令行上运行它的文件)。 然后,您可以转到命令行页面并键入文件名,然后像下面的行一样使用它:

FileName commands

例如:

pip install datetime

答案 2 :(得分:0)

很明显,您可能使用的是python 3而不是python2。否则,您可以使用已经建议的os.system或命令。从python 3开始,命令现在已经过时了。要使其正常工作,我将改用:

statusAndOutputText = subprocess.getstatusoutput( os.path.join( dirName, 'file.py' ) )

这肯定会起作用。我在python 3中使用了很多次,它将为您提供statusAndOutputText [0]中的状态和statusAndOutputText [1]中的输出缓冲区,这两个功能都很有用。