如何从批处理文件调用特定的Python函数?
假设我有一个简单的Python脚本,叫做MyScript.py:
def MyFunction(someInput):
#Do something with input
我想写一个批处理文件,专门调用MyFunction这个函数,并传入一些输入someInput。
现在,我可以做一些Python的操作,添加以下内容:
import sys
def MyFunction(someInput):
#Do something with input
if __name__ == "__main__":
eval(sys.argv[1])
然后我可以用这样的批处理文件:
python MyScript.py MyFunction('awesomeInput')
pause
不过我感觉这里有更简单的解决办法,不需要在每个脚本里都加上"_name_ == "_main_"的逻辑。
4 个回答
0
这是一个名为 my_function.py 的文件:
import sys
def MyFunction(someInput):
print 'MyFunction:', someInput
#Do something with input
if __name__ == "__main__":
pass
你可以在命令行中这样调用它:
python -c 'from my_function import MyFunction ; MyFunction("hello")'
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 """
2
没错。你可以使用 -c
这个命令参数。
python -c "import MyScript; MyScript.MyFunction('someInput')"
10
如果你和脚本在同一个文件夹里,你可以这样做:
python -c "import Myscript;Myscript.MyFunction('SomeInput')"