ファイル内の行の順序が「尊重」されるように入力パルメータの値をファイルと比較するにはどうすればよいですか?例えば:入力をファイルと比較してシーケンスを指定する
ファイル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が "migrate"値を持っている場合は、-sスイッチを必須にすることはできますか?
ありがとうございます。
私は非常にHTTPS([ 'argparse'](https://docs.python.org/2/library/argparse.html)モジュールに見て、この場合は、[サブコマンド]お勧めします: //docs.python.org/2/library/argparse.html#sub-commands)。 –
お薦めのIlja氏に感謝します。私はPythonでかなり新しくて、これを知りませんでしたし、これを実行してテストするためにさらに2日を要しました。私はこれら2つの真夜中のオイルを燃やすつもりだと思う: – Jaanna