2017-11-17 15 views
-4

は、私はそれが数字でテキストファイルを印刷し、このプログラムを持っている:あなたはテキストファイルの中に必要な単語を印刷するには?

with open('addon/entertainment.txt')as f: 
    lines = [] 
    for l_i, line in enumerate(f.read().split('\n'), 1): 
     formatted_line = '%s. %s' % (l_i, line) 
     print(formatted_line) 
     lines.append(formatted_line) 

出力:

1. Synchronised Swimming Dance 
2. Clown Performance 
3. Magic Performance 
4. House Dance Performance 
5. Live Band Performance 

私のようなエンターテイメントを得ることができるように私はプログラムに何をすべき:

1. Magic Performance 
2. Live Band Performance 

ありがとう

+1

「*シンクロナイズド・スイミング・ダンス&クラウン・パフォーマンス*」はどういう意味ですか? –

+0

私はそれを編集しました。混乱の言葉をおかけして申し訳ありません –

+1

あなたが達成しようとしていることはまだ不明です。例えば。ファイル内の行をフィルタリングしたり、並べ替える(ソートなど)したいですか? – C0DY

答えて

1

使用readlinesに、出力ラインに従って彼らのindexにあなたはinputコールに基づいて行を選択したい場合は

with open('addon/entertainment.txt') as f: 
    lines = f.readlines() 
    for line in lines: 
     print("{}. {}".format(lines.index(line) + 1, line)) 

    desired_lines = [3, 5] 
    output = [] 
    for desired in desired_lines: 
     output.append(lines[desired - 1]) 

    for o in output: 
     print("{}. {}".format(output.index(o) + 1, o)) 

あるいは、置き換えとdesired_lines

desired_lines = input().split(", ") 
# can choose one number or multiple numbers like this: "3, 5" 
output = [] 
for desired in desired_lines: 
    output.append(lines[int(desired) - 1]) 

for o in output: 
    print("{}. {}".format(output.index(o) + 1, o)) 

なお、ご入力がテキストファイルの行数よりも高くなった場合、あなた」 IndexError例外が発生します。

+0

ありがとうございます。わかった。本当に大いに役立ちます –

0

これは動作するはずです。テストするファイルを持っているが、それは基本的に、すべてのオプションを出力し、その行番号 を出力するもの行数のためにそれらを要求する(または私は正しくそれをしなかった場合には、必要があります)

with open('addon/entertainment.txt')as f: 
lines = [] 
for l_i, line in enumerate(f.read().split('\n'), 1): 
    print(str(num) + " : " + str(line)) 
uinput = int(input("What would you like to watch? (number)")) 
for l_i, line in enumerate(f.read().split('\n'), 1): 
    if l_i == uinput: 
     formatted_line = '%s. %s' % (l_i, line) 
     print(formatted_line) 
    print(str(num) + " : " + str(line)) 
+0

私はOPが1つではなく複数の行を選択できるようにしたいと考えています。しかし、質問は明確ではありません。メニュー番号またはキーワードで行を選択するかどうかはわかりません。ところで、あなたの 'with'ブロックのコードは、そうであるように字下げされていません。 –

+0

今編集します。ありがとう。実際に – ItzKmaf

+0

が必要な場合は、すぐに「または」の文を追加することができます。はい、私はメニュー番号で行を選択したいと思います。お気軽に –

関連する問題