当您运行Python代码时,如何从命令行获取文件名?就像如果你的代码打开一个文件并读取线,但该文件变化的,只要你运行它,怎么对你说:PYTHON从命令行获取文件
python code.py input.txt
这样的代码分析“input.txt中”?在实际的Python代码中你需要做什么?我知道,这是一个非常模糊的问题,但我不知道如何更好地解释它。
当您运行Python代码时,如何从命令行获取文件名?就像如果你的代码打开一个文件并读取线,但该文件变化的,只要你运行它,怎么对你说:PYTHON从命令行获取文件
python code.py input.txt
这样的代码分析“input.txt中”?在实际的Python代码中你需要做什么?我知道,这是一个非常模糊的问题,但我不知道如何更好地解释它。
import sys
filename = sys.argv[-1]
这将得到命令行上的最后一个参数。如果没有参数传递,它将是脚本名称本身,因为sys.argv[0]
是正在运行的程序的名称。
一个不错的选择是fileinput
模块,它将从命令行抓取任何或所有文件名,然后将内容作为一个大文件提供给脚本。
import fileinput
for line in fileinput.input():
process(line)
更多信息here。
只需使用基本的命令raw_input
声明输入文件名字符串现在
inFile = ""
inFile = raw_input("Enter the input File Name: ")
您可以通过open(inFile,'w')
使用argparse使用打开该文件是相当直观:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--file", "-f", type=str, required=True)
args = parser.parse_args()
现在名称文件位于:
args.file
你只需要有点不同运行程序:
python code.py -f input.txt
除了什么是已有的答案中提到,有一个其他替代依托使用Command Line Interface Creation Kit (Click)。当我发布这个答案时,它的最新稳定版本是version 6。 official documentation有关于如何处理文件并将它们作为命令行参数传递的示例。
完全错过了问题的要点 – JPCF