通常,如果我必须在多个文件之间执行重叠,我只需执行:
python -c 'import sys;print "".join(sorted(set.intersection(*[set(open(a).readlines()) for a in sys.argv[1:]])))' File1 File2 File3 File4 ....
但是如果我必须通过解析器来解决这个问题,我该怎么做呢?
围绕这个脚本,一个简短的例子就足够了,之后我就可以玩了。实际上,我希望用户提供两个输入:要对其执行 ioperation 的文件以及此处的操作是交集。
请提供帮助,而不是投票关闭帖子。
我想我必须展示我在做什么,这里有一个例子:
usage = "Usage: %prog -i <file1>[,<file2>,...] -o <out> -ops "
version = "%prog " + str(VERSION)
parser = OptionParser(version=version, usage=usage)
group1 = OptionGroup(parser, 'Optional')
parser.add_option("-i",
dest="featurefile",
help="Gene list",
metavar="FILE")
parser.add_option("-o",
dest="outfile",
help="output file (type determined by extension)",
metavar="FILE")
# Optional arguments
group1.add_option("--op",
dest="operation",
help="Intersection, Union & Uniques (default Intersection)",
default=None,
type="string")
parser.add_option_group(group1)
(options, args) = parser.parse_args()
现在这个集合是解析器的事情(完成),现在第二步是获取操作(交集)和文件并执行它们。在这一步我迷路了。
谢谢