2016-06-12 12 views
1

完全な文章を長いテキストファイルから抽出し、それらをPython 2.7のリストに文字列として追加しようとしています。私はこれを自動化したいだけでなく、リストにカットアンドペーストするだけではありません。ここでテキストファイルから完全な文章をコピーしてリストに追加

は私が持っているものです。

from sys import argv 

script, filename = argv # script = alien.py; filename = roswell.txt 

listed = [] 

text = open(filename, 'rw') 

for i in text: 
    lines = readline(i) 
    listed.append(lines) 

print listed 
text.close() 

何もリストにロードしません。

+1

を 'ファイル内の各行を読み取って、どのような'は 'readlineの(i)は(そしてどこからですか)?すべての行だけが必要な場合は、なぜ 'lists = text.readlines()'ではないのですか?また、* "コンテキストマネージャ" * 'をオープン(...)でテキストとして使用するべきです:'。 – jonrsharpe

+2

_complete文を定義_する。また、関数 'readline'が何をしているかを示してください。標準ライブラリの一部ではありません。しかし、ファイルライクなオブジェクトに対して呼び出せる 'readline'メソッドがあります。あなたのテキストファイル(またはその一部)の内容と入手したいリストを提供してください – Leva7

+0

あなたのファイルの行はすでに完全な文章ですので、行ごとにファイルを読みたいのですか、それとももっとたくさんありますか? (文章の終わりを検出するなど...) – Keiwan

答えて

1

あなたはwhileループでそれを行うことができます。前の例では

listed = [] 
with open(filename,"r") as text: 
    Line = text.readline() 


    while Line!='': 
     listed.append(Line) 
     Line = text.readline() 

print listed 

、私はそれぞれの文が別の行に書かれているものと、そうではない場合、代わりにこのコードを使用します。

listed = [] 


with open(filename,"r") as text: 
    Line = text.readline() 


    while Line!='': 
     Line1 = Line.split(".") 
     for Sentence in Line1: 
      listed.append(Sentence) 
     Line = text.readline() 

print listed 

そして、サイドノートに は、'. 'で区切られwith open(...) as text:代わりtext = open(...)

+0

の単語は '。'で区切られています文章を作成する必要はありません。例:10 A.M – lulyon

+0

@lulyonあなたは正しいです。私はテキストファイルの中に何があるのか​​分からない。おそらく空白を追加することができるので、.split( "。") –

+0

私はちょうどそれをチェックしました、それはあなたの答えでした! :) –

0

通常の文章を使用してみてください、n個ot '\n'。この状態で、(return-enterなし)period+spaceとのスプリットを使用します。すでにtext`に私のために

listed = [] 

fd = open(filename,"r") 
try: 
    data = fd.read() 
    sentences = data.split(". ") 
    for sentence in sentences: 
     listed.append(sentence) 

    print listed 
finally: 
    fd.close() 
+0

ありがとうございます!この仕事は私のためです。ニースとブリーフも同様です。乾杯! –

関連する問題