如何將輸入參數值與文件進行比較,以便文件中的行順序「受到尊重」。例如:將輸入與文件進行比較並遵循序列
文件sequence.txt具有以下enteries
aaa
bbb
ccc
ddd
和輸入即將像這樣(昏迷):
./run.py -c migrate -s ddd,bbb
然後輸出是這樣的:
bbb
ddd
這是我迄今爲止工作的腳本
#!/usr/bin/python
import sys
import getopt
import time
import os
def main(argv):
cmd = ''
schemas = ''
script_dir = os.path.dirname(__file__)
seq_file = "system/sequence.txt"
abs_file_path = os.path.join(script_dir, seq_file)
try:
opts, args = getopt.getopt(argv,"h:c:s",["cmd=","schemas="])
except getopt.GetoptError:
print './run.py -c=<command> -s=<schemas> '
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print './run.py -c=<command> -s=<schemas>'
sys.exit()
elif opt in ("-c", "--cmd"):
cmd = arg
elif opt in ("-s", "--schemas"):
schemas = arg
if cmd == "migrate" :
with open(abs_file_path) as z:
for line in z:
print line.rstrip('\n')
if __name__ == "__main__":
main(sys.argv[1:])
我知道我必須在位置print line.rstrip('\n')
做比較,但我不知道該怎麼做。有什麼建議麼?
此外,如果-c具有「遷移」值,我該如何使-s開關強制切換?
在此先感謝。
我強烈建議考慮['argparse'](https://docs.python.org/2/library/argparse.html)模塊和在這種情況下[子命令(HTTPS: //docs.python.org/2/library/argparse.html#sub-commands)。 –
謝謝Ilja的建議。我不知道這些,因爲我對python相當陌生,並且還有2天的時間來完成這個工作並推動測試。猜猜我要在這兩個燃燒午夜油:-) – Jaanna