Nav*_* C. 38 python command input
运行Python代码时如何从命令行获取文件名?就像你的代码打开一个文件并读取该行一样,但是每当你运行它时文件都会有所不同,你怎么说:
python code.py input.txt
Run Code Online (Sandbox Code Playgroud)
所以代码分析"input.txt"?你需要在实际的Python代码中做什么?我知道,这是一个非常模糊的问题,但我真的不知道如何更好地解释它.
kin*_*all 41
一个很好的选择是fileinput模块,它将从命令行获取任何或所有文件名,然后将内容提供给您的脚本,就像它们是一个大文件一样.
import fileinput
for line in fileinput.input():
process(line)
Run Code Online (Sandbox Code Playgroud)
更多信息在这里.
agf*_*agf 30
import sys
filename = sys.argv[-1]
Run Code Online (Sandbox Code Playgroud)
这将获得命令行上的最后一个参数.如果没有传递参数,它将是脚本名称本身,sys.argv[0]正在运行的程序的名称.
小智 15
使用argparse非常直观:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--file", "-f", type=str, required=True)
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
现在该文件的名称位于:
args.file
Run Code Online (Sandbox Code Playgroud)
你只需要以不同的方式运行程序:
python code.py -f input.txt
Run Code Online (Sandbox Code Playgroud)