假设我有这个简单的Python脚本,名为 MyScript.py :
def MyFunction(someInput):
#Do something with input
我想用 someInput 编写一个专门从 MyScript 调用 MyFunction 的批处理文件。
现在,我可以做一些Python-foo并添加:
import sys
def MyFunction(someInput):
#Do something with input
if __name__ == "__main__":
eval(sys.argv[1])
然后我可以使用这样的批次:
python MyScript.py MyFunction('awesomeInput')
pause
但我觉得这里有一个更明显的解决方案,不涉及我改造“_ name _ ==”_ main _“< / strong>我的每个脚本中的逻辑。
答案 0 :(得分:6)
如果您与脚本位于同一文件夹中,则可以执行以下操作:
python -c "import Myscript;Myscript.MyFunction('SomeInput')"
答案 1 :(得分:1)
事实上。您可以使用-c
(命令)参数。
python -c "import MyScript; MyScript.MyFunction('someInput')"
答案 2 :(得分:1)
您可以使用此技巧编写批处理文件:
@echo off
rem = """
rem Do any custom setup like setting environment variables etc if required here ...
python -x "%~f0" %*
goto endofPython """
# Your python code goes here ..
from MyScript import MyFunction
MyFunction('awesomeInput')
rem = """
:endofPython """
答案 3 :(得分:0)
my_function.py:
import sys
def MyFunction(someInput):
print 'MyFunction:', someInput
#Do something with input
if __name__ == "__main__":
pass
你用shell调用它:
python -c 'from my_function import MyFunction ; MyFunction("hello")'