番号

2017-06-09 24 views
0

こんにちは、私はコーディングに比較的新しいですが、私は自分のためにできる限りを考え出す楽しむために来ている:)番号

を探してくれてありがとうにテキストファイルを関連付けます。私はどこに行くべきかわからない状況になった。

基本的には、デバイスのアップグレード手順を実行しようとしています。私はすでにテキストファイルの異なる行にアップグレードするソフトウェアのバージョンの名前を持つテキストファイルを持っています。

私がしたいのは、1からファイルが終わるところまで番号を印刷し、その番号を隣に印刷された関連バージョン番号を呼び出す変数に格納することです。

私が話しているものを組み込むものを作成しましたが、後で表示されるバージョンにカウント変数を関連付ける方法はありません(少なくとも私は思っていません)。

def modify_ftp(self): 
     with open('/tmp/ftp', 'r') as f: 
      data = f.read().splitlines() 
      count = 0 
      for line in data: 
       if line.endswith('.bin'): 
        count = count + 1 
        print ("> " + str(count) + " <", line) 
      selection = raw_input("\tSelect a version of code to upgrade/downgrade to") 
     os.remove('/tmp/ftp') 

が出て起動するには

('> 1 <', 'a.bin') 
('> 2 <', 'b.bin') 
('> 3 <', 'c.bin') 
('> 4 <', 'd.bin') 
('> 5 <', 'e.bin') 
('> 6 <', 'f.bin') 
('> 7 <', 'g.bin') 
('> 8 <', 'h.bin') 

のような出力を生成し、私は私もプログラミングのその非機能的な方法で(自分自身でこれを行うには良い方法があると確信していると言うでしょう)。次の行で、選択肢の入力を要求します。その選択肢は、後でプログラムで処理するために関連する* .binファイルに関連付けられます。もし私が何らかの形で不明であれば、すみません。非常に事前にありがとうございます。

答えて

0

Iは、値を格納する配列を使用することを決めた:

def modify_ftp(self): 
    with open('/tmp/ftp', 'r') as f: 
     data = f.read().splitlines() 
     count = 0 
     arr = [] 
     for line in data: 
      if line.endswith('.bin'): 
       count = count + 1 

       arr.append(line) 
       print ("> " + str(count) + " <", line) 
     selection = raw_input("\tSelect (i.e. 1, 2... 15) a version of code to upgrade/downgrade to: ") 

Iは、次に「選択」に格納された番号と

print (arr[int(selection) - 1]) 
os.remove('/tmp/ftp') 
1

ラインがすでにリスト(データ)に格納されているので、あなたは私達があなたのナンバリングシステムがインデックス化されているので、それが適切で始まるインデックスへselection - 1を行うだけで

runFile = data[selection - 1] 

を行うことによって、行番号にアクセスすることができるはずです1、リストインデックスは0から始まります。

注:これは、ご使用のバージョンのシリアル番号が必要であると仮定しています。より抽象的なアプローチが必要な場合は、辞書hereを検索し、データをペアで関連付ける方法を学習します。

実際は、どのように連想している番号を選択するかによって異なります。とにかくプログラムにハードコードされているかのように見えるので、ファイル内にその種のデータを置くのが最善でしょう。

+0

をバージョン値を参照することができ、私はいくつかこれを試してみました2つの用語が無関係であるように見えるので、この割り当てを実行することはできません。私の試行はカウント数-1を返すだけです。あなたの助けをありがとう。 –