python 如何从键盘而不是文件读取输入

How to read input from keyboard instead of file in python

我有以下 python 片段

@click.argument('file',type=click.Path(exists=True))

以上命令从以下格式的文件中读取

python3 code.py file.txt

使用函数处理同一个文件

def get_domains(domain_names_file):
    with open(domain_names_file) as f:
        domains = f.readlines()
    return domains
domains = get_domains(file)

我不想从文件中读取它,我想在终端中执行时提供一个域作为参数,命令将是

python3 code.py example.com

我应该如何重写代码。

Python版本:3.8.2

您可以使用 argparse:

import argparse

# set up the different arguments
parser = argparse.ArgumentParser(description='Some nasty description here.')
parser.add_argument("--domain", help="Domain:   www.some-domain.com", required=True)

args = parser.parse_args()
print(args.domain)

然后你通过

调用它
python your-python-file.py --domain www.google.com

click.argument 默认创建从命令行读取的参数:

@click.argument('file')

这应该创建一个从命令行读取并在 file 参数中可用的参数。

查看文档和示例 here

我发现您正在使用 click 库。 由于您想将 'domain'/website 作为参数传递,因此只需将其作为字符串输入即可。如果您从装饰器中删除 'type' 参数,默认情况下它会生成 STRING 类型。

The most basic option is a simple string argument of one value. If no type is provided, the type of the default value is used, and if no default value is provided, the type is assumed to be STRING.

解决方法: @click.argument('domain')