2

嗨有没有办法像这样加载文件,但是从命令行

所以我可以输入 python test.py data.txt

代替

data = [line.strip() for line in open("/home/user/data.txt",  "rb").readlines()]
4

3 回答 3

3
import sys
data = [line.strip() for line in open(sys.argv[1],  "rb")]

顺便说一句,不需要.readlines()

于 2012-07-12T06:17:29.237 回答
2

要从命令行向脚本传递参数,您需要使用sys.argvfileinput

系统.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()。也允许使用单个文件名。

于 2012-07-12T06:22:11.243 回答
1

看看argparse模块。它相当容易使用,甚至允许您直接从命令行参数提供和打开文件。

于 2012-07-12T06:19:00.837 回答