【问题标题】:How to use sys.argv?如何使用 sys.argv?
【发布时间】:2020-05-30 02:52:19
【问题描述】:

您好,我正在尝试编写一个函数,该函数将采用不同的参数和 将在另一个脚本的另一个函数中使用。我的想法是能够直接从终端精确参数,脚本将在某种程度上使用精确参数执行函数并应用正确的行。

所以我像这样运行我的脚本并将 f 这是我的参数但我没有任何答案,放在完整的脚本下方。

C:\Users\Etu\ocuments>python test2.py f  

第一个脚本


import sys

first_arg = sys.argv[1]

texte = "je MaNgE"

def get_command(texte, first_arg):
    if first_arg =="f":
        texte = texte.lower()
        return texte
    elif first_arg=="t":
        return texte.split()
    elif first_arg =="r":

    return texte

    else:
        raise Exception("Wrongfile feature type entered. Possible values: 't','f', 'r")



第二个脚本

from test import *


texte = "je MaNgE"

def choose (texte):
    texte=get_command(texte, first_arg)

    print(texte)




想法是直接从shell修改参数,而不是一直进入脚本内部。

【问题讨论】:

  • 查看sys.argv或单击哪个为您提供处理命令行参数的工具。
  • 为了更简单的使用sys.argv。对于更复杂的使用标准模块argparse 或外部模块之一,如click
  • 我试了,但是不行,能不能帮我调试一下代码

标签: python python-3.x dataframe arguments


【解决方案1】:

您在此处需要的称为命令行参数

这是一种实现方式。

import sys 
first_arg = sys.argv[1]
second_arg = sys.argv[2]

first_args 将保存传递给脚本的任何第一个参数,依此类推。

sys.argv 是提供给 python 解释器的参数列表。 sys.argv[0] 将始终是文件名。

【讨论】:

    【解决方案2】:

    借助 python 命令行参数可以轻松实现您想要做的事情:>

    考虑一下有助于你理解命令行参数的代码:

    """
    Filename: test.py
    """
    
    import sys
    
    def main():
        # always check to avoid IndexError
        if len(sys.argv) > 1:
            # sys.argv[0] always returns the current python file name
    
            print("Number of arguments: ", len(sys.argv))
            print("Filename: ", sys.argv[0])
            print("Hello", sys.argv[1])
    
    main()
    

    注意:
    sys.argv返回

    传递给 Python 脚本的命令行参数列表。参数 [0] 是脚本名称(取决于操作系统,这是否是 完整路径名与否)。如果该命令是使用 -c 执行的 解释器的命令行选项,argv[0] 设置为字符串 '-C'。如果没有将脚本名称传递给 Python 解释器,则 argv[0] 是空字符串。

    现在,当您使用以下命令运行上述脚本时: python test.py Lana

    输出将是
    Number of arguments: 2 Filename: test.py Hello, Lana

    希望这会对您有所帮助:)

    【讨论】:

    • 你还想知道什么?
    • 谢谢它的工作我还没有调用该函数,这就是为什么
    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 2012-08-04
    • 2019-07-03
    • 1970-01-01
    • 2012-08-31
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多