【问题标题】:How do I create terminal commands in my python script?如何在我的 python 脚本中创建终端命令?
【发布时间】:2021-04-17 22:06:18
【问题描述】:

我想在我的 python 脚本中创建终端命令。

例如,

$ cd my_project_folder
$ --help(我在这个python文件夹中使用了一个命令)

输出
$ this is the help command. You've activated it using --help. This is only possible because you cd'd to the folder and inputted this command.

我正在寻找用户定义的命令(我已经在我的 python 函数中定义的命令。)

不是在寻找像“ls”和“pwd”这样的命令。

【问题讨论】:

  • 没有。我想做我自己的命令。假设我已经打印了“我的名字是乔”。现在,如果用户输入“--hello”,这是我创建的命令,脚本将打印“hi!”
  • @Nqx 所以我的理解是,您正在寻找通过$ some_defined_command 调用脚本?比如$ hello,它调用了一个python函数?
  • @Leemosh 正确!

标签: python python-3.x shell terminal command


【解决方案1】:

你可以使用os.system,如下:

import os
os.system('your command')

【讨论】:

  • 我还没有在那里定义任何东西。这适用于 'ls' 和 'cd' 之类的命令吗?另外,如果我在最初的问题中没有澄清任何内容,我深表歉意。
【解决方案2】:

如果您想执行特定于您使用的 bash 或 shell 的命令,请使用 os 模块

import os
os.system("string command")

正如 Leemosh 所建议的,您可以使用 click 模块来制作自己的与脚本相关的命令

您还可以使用 sys 模块来读取放在脚本之后的参数 例子

$ python3 name_of_script.py arg_n

import sys
if sys.argv[1] == "commnd":
    do something

【讨论】:

  • 我希望在终端本身或脚本运行时执行命令。这可能吗?我应该重复使用输入命令吗?
【解决方案3】:

您正在寻找的是创建一个 setup.py 文件并定义一些入口点。我建议观看 https://www.youtube.com/watch?v=GIF3LaRqgXo&ab_channel=CodingTechhttps://www.youtube.com/watch?v=4fzAMdLKC5ks&ab_channel=NextDayVideo 以更好地了解如何处理 setup.py。

from setuptools import setup

setup(
    name="Name_of_your_app",
    version="0.0.1",
    desciption="some description",
    py_modules=["app"], # I think you don't need that
    package_dir={"": "src"}, # and probably you don't need this as well
    entry_points={"console_scripts": {"THIS_IS_THE_DEFINED_COMMAND=app:main"}},
)

app 是 py 文件的名称,main 是你要调用的函数。

app.py

def main():
    print("hello")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 2018-09-01
    • 2016-01-09
    • 2011-04-13
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    相关资源
    最近更新 更多