2017-06-22 2 views
0

私は後で単語を収集するので、ファイルのすべての内容を一度に印刷したくありません。これは私のコードです:ファイルからすべての単語をプリントするこのコードはなぜ機能しないのですか?

file = open('file analysis.txt', 'r') 
chars = '' 
for line in file: 
    for ch in file: 
     chars = chars + ch 
     if ch == ' ': 
      print(chars) 
file.close() 

すぐに質問に答えることはできません。

+3

あなたは 'for ch in file'の代わりに' for ch in line'を意味しているかもしれません。また、 'ch'行の最後の単語の場合は、スペースの代わりに' \ n 'となります。 – kuro

+1

また、印刷後に 'chars'を再び' '' 'に戻すことを意味しましたか? –

答えて

0

ファイルの行を繰り返し処理し、行の各文字を処理する場合は、2番目のforfor ch in line:に変更してください。

コメントでkuroが言及しているので、改行ではなく、スペース文字に遭遇したときにのみ、読んだ単語を印刷しています。あなただけが発生したそれぞれの新しい単語を印刷することを意味している場合、あなたはおそらくchars = ''をリセットしたい

Lorem 
Lorem ipsum 
Lorem ipsum dolor 
Lorem ipsum dolor sit 
Lorem ipsum dolor sit amet, 
Lorem ipsum dolor sit amet, consetetur 
Lorem ipsum dolor sit amet, consetetur sadipscing 

:道は今、すべてを印刷しているあなたのprint作品はとてもサンプル出力は次のようになります、各スペースの後に単語を読んで印刷後に各単語の後に改行を抑制するには、print(chars, end='')を使用できます。

withステートメント内のファイルを開く方が安全です。ファイルを閉じると処理されます。

次に、あなたのコードは次のようになります。あなたの最後の言葉は続いていないときに、あなたがそう、スペースにのみ印刷

Lorem ipsum dolor sit amet, consetetur sadipscing 

お知らせ:

with open('file analysis.txt', 'r') as file: 
    chars = '' 
    for line in file: 
     for ch in line: 
      chars = chars + ch 
      if ch == ' ': 
       print(chars, end='') 
       chars = '' 

これは次の出力を与えるだろうスペースは、読み取られますが、印刷されません。

0

いくつかあります。代わりにfile.open()file.close()を使用しての最初の

、あなたは自動的にファイルを閉じ

with open('file analysis.txt', 'r') as f: 

を使用する必要があります。 さらにfor ch in line:ではなくfor ch in file: を使用する必要があります。ファイル内の各行を2回印刷するのではなく、行内の各文字を印刷する必要があるためです。 でも、毎回印刷後にchars変数を空の文字列にリセットしたいので、同じ単語を何度も印刷しないでください。 最後にのpythonのprint()関数は、各print文の後にデフォルトで改行を作成します。 print(string, end='')を実行して、行末の文字を空の文字列に置き換えることで、これを回避できます。アカウントにこのすべてを取る

、あなたのコード彼らは次のようになります。

with open('file analysis.txt', 'r') as f: 
chars = '' 
for line in f: 
    for ch in line: 
     chars += ch 
     if ch == ' ': 
      print(chars, end='') 
      chars = '' 

あなたはprint(string, end='')機能についての詳細を学ぶことに興味があるなら、文と...との詳細についてpositional arguments vs keyword argumentsを検索、hereを見て

関連する問題