我有一个Python脚本,它输入文件中的所有单词并按顺序对它们进行排序:
for
但是我不是每次都要求输入文件,而是选择带有" -i"的输入文件。并使用" -o"保存输出文件,这样:
with open(raw_input("Enter a file name: ")) as f :
for t in sorted(i for line in f for i in line.split()):
print t
和BTW,如何将输出保存在目标文件上?
答案 0 :(得分:3)
这应该这样做:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-i', dest='infile',
help="input file", metavar='INPUT_FILE')
parser.add_argument('-o', dest='outfile',
help='output file', metavar='OUTPUT_FILE')
args = parser.parse_args()
with open(args.infile, 'r') as infile:
indata = infile.read()
words = indata.split()
words.sort()
with open(args.outfile, 'w') as outfile:
for word in words:
outfile.write('{}\n'.format(word))
argparse
是用于解析命令行选项的内置模块。它为您完成所有工作。
$ ./SO_32030424.py --help
usage: SO_32030424.py [-h] [-i INPUT_FILE] [-o OUTPUT_FILE]
optional arguments:
-h, --help show this help message and exit
-i INPUT_FILE input file
-o OUTPUT_FILE output file
答案 1 :(得分:0)
要开始使用参数,请查看sys.argv
。
要写入输出文件,请使用写入模式“w”和.write()
。
对于后者,肯定有很好的教程。