我想在我的代码中进行修改,以便能够在调用 python 代码的同一命令行中输入我的文件,例如:
script.py filename
目前我的代码是:
filename = raw_input('Enter a filename: ')
with open(filename) as f:
next(f)
for lines in f:
请建议我该如何处理。
答案1
答案2
sys.argv
对于简单的用例来说是最简单的。
对于更高级的用途,您可以使用argparse
,但我更喜欢click
(“命令行界面创建工具包”)这使得使用 Python 创建命令行工具变得非常容易:
import click
@click.command()
@click.argument('filename', type=click.Path(exists=True, readable=True), nargs=1)
def main(filename):
...
main()
使用@click.option()
您还可以创建自定义标志,如--filename
。
这使得使用参数变得更容易,因为您可以定义自动检查的输入类型。它还会生成漂亮的错误消息并--help
打印使用信息:
Usage: test.py [OPTIONS] FILENAME
Options:
--help Show this message and exit.
您需要安装click
:
# Python2:
pip install click
# Python3:
pip3 install click
答案3
使用sys
模块:
import sys
with open(sys.argv[1]) as filename:
for line in filename:
print(line)
也可以看看如何读取/处理命令行参数?使用argparse
模块创建自定义标志,例如-f <filename>