我的问题是我想从另一个python文件中执行一个带有参数的python文件以获得返回值…。
我不知道我是否解释得很好…
例:
从外壳执行以下命令:
getCameras.py "path_to_the_scene"
这会给我返回照相机清单。
所以我怎么能从另一个脚本中调用这个脚本(包括参数)呢?
我一直在尝试通过阅读此处的其他一些问题自己弄清楚,但是我做得不好,我应该使用execfile()函数吗?究竟如何?
在此先感谢您对像我这样的新手的帮助!!
好的,在查看了您的答案之后,我必须编辑我的问题以使其更简洁,并且因为我听不懂某些答案(对不起,就像我说的我是新手!):
好吧,我有这两个脚本“ getMayaCameras.py”和“ doRender.py”,还有一个名为“
renderUI.py”的脚本,它在GUI中实现了前两个脚本。
“ getMayaCameras.py”和“ doRender.py”都是可以通过添加参数(或在“
doRender.py”情况下为标志)直接从系统外壳执行的脚本,如果可能,我想仍然具有这种可能性,因此我可以选择执行UI还是直接从外壳执行脚本
我已经通过从“ renderUI.py”脚本中导入来对其进行了一些修改,但现在它们无法自行工作…。
那么有可能让这些脚本自己工作,仍然有可能从另一个脚本中调用它们吗?到底如何 您之前告诉我的这种 “从命令行参数处理中分离逻辑”
对我来说听起来不错,但我不知道如何在脚本上实现它(我尝试了但没有成功)…。
这就是为什么我要在此处发布原始代码以供您查看我是如何制作的,可以自由地提出批评和/或更正代码以向我解释如何使脚本正常工作…
#!/usr/bin/env python
import re,sys
if len(sys.argv) != 2:
print 'usage : getMayaCameras.py <path_to_originFile> \nYou must specify the path to the origin file as the first arg'
sys.exit(1)
def getMayaCameras(filename = sys.argv[1]):
try:
openedFile = open(filename, 'r')
except Exception:
print "This file doesn't exist or can't be read from"
import sys
sys.exit(1)
cameras = []
for line in openedFile:
cameraPattern = re.compile("createNode camera")
cameraTest = cameraPattern.search(line)
if cameraTest:
cameraNamePattern = re.compile("-p[\s]+\"(.+)\"")
cameraNameTest = cameraNamePattern.search(line)
name = cameraNameTest.group(1)
cameras.append(name)
openedFile.close()
return cameras
getMayaCameras()
再次感谢,
最好的答案是 不要 。将您的getCameras.py写为
import stuff1
import stuff2
import sys
def main(arg1, arg2):
# do whatever and return 0 for success and an
# integer x, 1 <= x <= 256 for failure
if __name__=='__main__':
sys.exit(main(sys.argv[1], sys.argv[2]))
然后从其他脚本中执行
import getCamera
getCamera.main(arg1, arg2)
或调用getCamera.py中的任何其他函数
问题内容: 我想从另一个Python脚本运行一个Python脚本。我想像使用命令行一样传递变量。 例如,我会跑我的,将通过值(0,1,2,3)的列表迭代第一个脚本,并通过那些到第二脚本,然后,等 我发现了Stack Overflow问题1186789,这是一个类似的问题,但是ars的答案调用了一个函数,在这里我想运行整个脚本,而不仅仅是函数,而balpha的答案则调用了脚本,但没有参数。我将其更改
问题内容: 我有一个长期运行的python脚本,希望能够从另一个python脚本结束。理想情况下,我正在寻找一种将进程ID设置为第一个脚本并能够从第二个脚本通过该ID查看其是否正在运行的方法。此外,我希望能够终止该长时间运行的过程。 有没有很酷的捷径可以实现这一目标? 另外,我在Windows环境中工作。 我最近在这里找到了另一种答案:检查python脚本是否正在运行 问题答案: 您可以通过以下方
所以我有主python脚本,我想从我的主文件中调用另一个python脚本,但是,每当我这样做的时候,我调用的脚本就会超过原来的脚本控制台中的主脚本?
问题内容: 我需要从我的Python脚本执行该脚本。 可能吗?该脚本会生成一些输出,并写入一些文件。如何访问这些文件?我尝试了子流程调用功能,但没有成功。 应用程序“ bar”还引用了一些库,除了输出外,它还创建了文件“ bar.xml”。我如何访问这些文件?只是通过使用open()? 谢谢, 编辑: Python运行时的错误仅是这一行。 问题答案: 要执行外部程序,请执行以下操作: 是的,假设您
问题内容: 我尝试执行以下操作(我的jar和python文件都在同一目录中): 和 无论是工作过。因此,我当时以为应该改用Jython,但我认为必须有一种更简单的方法来通过python执行jar文件。 你知道我可能做错了什么吗?或者,是否还有其他网站可以进一步研究我的问题? 问题答案: 我将以这种方式使用子流程: 但是,如果你有一个正确配置的,你应该能够直接运行jar,因为你写的。 那么,这正是您
问题内容: 我有一个Maven项目,其中我正在尝试执行脚本(用R编写)。我也将此脚本文件放在源代码目录中。我发现此脚本根本没有执行。但是,当我将此脚本移到jar文件之外时,它会执行!谁能告诉我原因,并给我一些解决方案以将脚本放入jar中,同时确保其执行? 非常感谢 ! 问题答案: 我将执行以下操作: 使用ClassLoader.getResourceAsStream()获取文件的InputStre