如何从批处理文件调用特定的Python函数?

7 投票
4 回答
9361 浏览
提问于 2025-04-17 21:43

假设我有一个简单的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')"

撰写回答