[英]How to run a python function from Windows 10 command prompt in 'python filename.py funcname' format?
我有以下 python 文件,名为 hello.py:
print('Hello')
def world():
print('Hello World')
如果我在 Windows 10 的命令提示符中键入以下内容,我会得到:
In: python hello.py
Out: 'Hello'
In: python hello.py world
Out: 'Hello'
请注意,在第二个命令提示符中,“Hello World”不是输出。 为什么我的文件在命令行中调用时无法执行 python 函数但能够加载文件没有问题的任何原因?
为什么我需要这个?:我需要提交一个更大的文件,该文件具有项目的许多功能。 为了让这个文件自动分级,我需要能够使用特定的序列“ python filename.py functionname ”从它调用任何给定的函数。
更新:下面的一些答案确实有效,但它们没有遵循我的项目评分所需的“python filename.py functionname”的特定顺序。 我很欣赏到目前为止每个人提供的见解。
试试这段代码,只输入 hello.py:
print('Hello')
def world():
return'Hello World'
world()
############################################### ################
def F1():
print('This is the first function.')
if __name__ == '__main__':
F1()
def F2():
print('This is the second function.')
if __name__ == '__main__':
F2()
现在您可以使用form(file_name) import(function_name) create folder(1) 和多个函数,您可以尝试将所需的函数导入另一个文件夹(2) 一次一个,而不是全部一次使用这个。 如果发现任何错误,请原谅我的错误,如果没有详细说明,请随时进一步询问。
您可以使用以下命令直接从命令提示符运行函数:
python -c 'from hello import world; world()'
您可以运行 python 解释器作为替代。 cd
到您的文件目录并启动 python:
python
然后从您的文件中导入函数:
from hello import world
(从与文件相同的目录启动 python cmd。)
然后,您可以运行:
>>> world()
Hello World
我找到了一个适合我的解决方案:
深入挖掘后,我意识到 Windows 传递了一个 sys.argv 输入,其中包含用于调用文件的所有命令提示符输入的字符串。
在我的“python hello.py world”的情况下,系统会将 ['hello.py','world'] 作为 sys.argv 的参数传递。 通过创建可调用函数的字典,然后将 sys.argv 的字符串与其在字典中的相应函数进行匹配,我可以根据需要执行代码。
新代码:
print('Hello')
def world():
print('Hello World')
import sys
callable_functions = {'world':world}
callable_functions[sys.argv[1]]()
现在命令提示符输入和输出:
In: python hello.py world
Out: 'Hello'
Out: 'Hello World'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.