我想我必须使用os.system或subprocess.call,但是我不知道如何使用它。
我没有编辑原始文件夹的权限。
subprocess.Popen('file.py', cwd=dirName)
给我“系统找不到指定的文件”,即使该文件明确存在
如果我输入的是cmd,
cd directory
file.py -arg
编辑:为了清楚起见,我想使用python脚本运行另一个脚本
答案 0 :(得分:1)
当您用cmd标记问题时,我假设您使用Windows。 Windows足以在cmd中键入文档名称时自动使用适当的命令,而Python子进程则不能。所以这里有2种可能的方法
使用shell=True
要求cmd解释器执行命令:
subprocess.Popen('file.py', cwd=dirName, shell=True)
显式传递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]中的输出缓冲区,这两个功能都很有用。