嗨有没有办法像这样加载文件,但是从命令行
所以我可以输入 python test.py data.txt
代替
data = [line.strip() for line in open("/home/user/data.txt", "rb").readlines()]
嗨有没有办法像这样加载文件,但是从命令行
所以我可以输入 python test.py data.txt
代替
data = [line.strip() for line in open("/home/user/data.txt", "rb").readlines()]
import sys
data = [line.strip() for line in open(sys.argv[1], "rb")]
顺便说一句,不需要.readlines()
。
要从命令行向脚本传递参数,您需要使用sys.argv或fileinput。
系统.argv
传递给 Python 脚本的命令行参数列表。argv[0] 是脚本名称(它是否为完整路径名取决于操作系统)。如果命令是使用解释器的 -c 命令行选项执行的,则 argv[0] 设置为字符串“-c”。如果没有将脚本名称传递给 Python 解释器,则 argv[0] 是空字符串。
文件输入:
import fileinput
for line in fileinput.input():
process(line)
这会遍历 sys.argv[1:] 中列出的所有文件的行,如果列表为空,则默认为 sys.stdin。如果文件名是“-”,它也被 sys.stdin 替换。要指定文件名的替代列表,请将其作为第一个参数传递给 input()。也允许使用单个文件名。
看看argparse模块。它相当容易使用,甚至允许您直接从命令行参数提供和打开文件。