繁体   English   中英

如何从 Windows 10 命令提示符以“python filename.py funcname”格式运行 python 函数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM