2016-08-06 6 views
-1

私は、テキストファイルからPythonでリストを作成しようとしています。私はファイルを開き、行を読んで、splitメソッドを使用してリストに追加したいと思います。これは私がこれまで持っていたものです。それがないすべての印刷されたテキストファイル:fat cat hat mat sat bat lap基本リストの作成?

私はこれが出て来てほしい:['fat', 'cat', 'hat', 'mat', 'sat', 'bat', 'lap']

+6

あなたはあなたの '' for line in word'''(line-inise) '' 'for line word'''は*どんなプログラミング言語でもうまくいくと思いますか?:' :--) – sascha

+6

なぜコンマがないときに '.split( '、')'を分割すると思いますか? – zondo

+2

@サシャが何を言ったかを考えてください。また、 "for line in word"というステートメントを考えてみましょう。あなたは混乱しないように名前を反転したいかもしれません。 –

答えて

3

他のコメント主が認められてきたように、変数の命名を提供する必要があり

lines = [] 
folder = open("test.txt") 
word = folder.readlines() 
for line in word: 
    var =() 
    for line in word: 
     lines.append(line.strip().split(",")) 
     print (word) 

が私のファイルはこのようになりますコンテキストの変数はに割り当てられ、に割り当てられます。変数には多数の名前を付けることができますが、とする必要があります。

あなたは一般的に良い練習を)ファイルオブジェクト閉じていることを確認して、同じスコープ内のファイルを開閉するwithステートメントを使用することができます。それ以降、readlines()関数から返されたlinesは、区切り文字に基づいてsplit()であるlistとして印刷できます。

with open("test.txt") as file: 
    lines = file.readlines() 
for line in lines: 
    print line.split(' ') 

出力例:

ファイル:fat cat hat mat sat bat lap

>>> ['fat', 'cat', 'hat', 'mat', 'sat', 'bat', 'lap'] 
+0

ファイル内に行が1つしかない場合は、それが本当に必要かどうかわかりません。 –

+1

@ TadhgMcDonald-Jensen私はそれをより強固に保つことを選択しました。この方法で、テキストファイルからより多くの行を追加または削除することができます。 – ospahiu

+0

ファイルにもっと多くの行が追加されたとしても、 'for line in file:'はまだ動作します。 –

1

ファイルは、唯一のラインで構成されている場合、あなたがいるように見えるとして、あなたはほぼ同じくらいの作業を行う必要はありません。思う。

str.splitはリストを返すので、個々の要素をappendにする必要はありません。引数なし.split()を呼び出すとき、それはあなたがやりたいために空白(スペース、タブ、改行など)によって分割されます文字通り、次のようになります。

with open("test.txt","r") as f: 
    mywords = f.read().split() 

print(mywords) 

は、ファイルを開いて、内容を読んで、スプリットそれを空白で区切り、結果のリストをmywordsという変数に格納します。 (またはそれを呼びたいもの)

空白で区切ると、新しい行が空白と同じように扱われ、単語の別の区切りが処理されることに注意してください。

+0

このスレッドでは、変数の命名について多くのことが言われていますので、 'mylines'は' mywords'ですか? ;-) –

+1

はい、私は寝るときにそれを認識しました。 :) –

+0

ハハハ。私はこのような貧しい人のポストをあまり感謝しません。私はそうだと思うので、そこに[ドキュメンテーション](http://stackoverflow.com/documentation)があります。 –

関連する問題