使用模式将多个文本文件作为参数传递给脚本

时间:2018-10-19 12:44:34

标签: python arguments anaconda parameter-passing prompt

首先,我想说这是一个练习的调试问题,但我无法从讲师那里获得任何帮助,而且正如我所阅读的论点一样,我似乎不太了解弄清楚,所以我在这里。所以我有一个python脚本,用于比较作为参数传递的.txt文件。目前,它的称呼如下:

    *, *:before, *:after {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
}

html,body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
}

div {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40%; 
  height: 200px;
  margin-bottom: 1em;
}

.red {
  background: red;
}

.blue {
  width: 30%;
  background: blue;
}

span {
  padding: 5px;
  font-size: 30px;
  background: white;
  text-align: center;
  width: 98%;
}

并使用

将文件解析为名称列表
python compare.py -s stop_list.txt NEWS/news01.txt NEWS/news02.txt

我可以通过简单地将它们一起列出来传递两个以上的文件

import sys, re, getopt, glob

opts, args = getopt.getopt(sys.argv[1:],'hs:bI:')
opts = dict(opts)
filenames = args

if '-I' in opts:
    filenames = glob.glob(opts['-I'])

print('INPUT-FILES:', ' '.join(filenames))
print(filenames)

但这可能很快变得不切实际。

现在建议使用模式可以传递更多文件

python compare.py -s stop_list.txt NEWS/news01.txt NEWS/news02.txt NEWS/news03.txt NEWS/news04.txt

但是它似乎有点怪异。首先,如果我写:

python compare.py -s stop_list.txt -I ’NEWS/news??.txt’
i.e.:
python compare.py -s stop_list.txt -I ’NEWS/news0[123].txt’

仅news01.txt将被传递到脚本。

以下,按照建议的方式使用图案时,没有任何输入。我真的不明白解析输入文件的代码是否错误并且需要进行一些更改,或者我做错了什么。

-h状态:

python compare.py -s stop_list.txt -I NEWS/news01.txt NEWS/news02.txt

预先感谢:)

1 个答案:

答案 0 :(得分:0)

检查报价。他们看起来很特别。尝试使用“或”。