2017-05-02 7 views
-1

元のファイルを再作成するために、単語のリストと位置のリストにファイルを圧縮できるプログラムを作成しようとしています。また、元のファイルの圧縮されたファイルを取得し、句読点や大文字を含む完全なテキストを再作成することもできます。再作成の文章が全くコンマがなかったので、文を再作成すると、再作成された文にすべてのカンマがありません

file = open("task3paragraph.txt", "w") 
file.write ("Two little dicky birds sitting on a wall, one named Peter, one 
named Paul. Fly away Peter, fly away Paul, come back Peter, come back 
Paul.Into the gardens the little birds go, looking for worms that hide down 
low. Peter can’t catch one, neither can Paul, back home Peter, back home 
Paul!") 
file.close() 


file = open("task3paragraph.txt", "r") 
paragraph = file.read() 
para = paragraph.split() 
positions = [para.index(x)+1 for x in para] 
para2 = str(para) 
pos = str(positions) 
file.close() 


file = open("task3lists.txt", "w") 
file.write(para2) 
file.write("\n") 
file.write(pos) 
file.close() 


file = open("task3lists.txt", "r") 
words = file.readlines() 
sentence = words[0].replace(" 
[","").replace("]","").replace("'","").replace(",","") 
file.close() 


file = open("task3recreated", "w") 
file.write(sentence) 
file.close() 

そして、私はそれを実行したとき、それは終わりに向かっ以外完璧に動作します:

は、これまでのところ、私はこれを持って

二つの小さなディッキー鳥は、上に座ってピーターという名前の壁1はポールと名づけられました。離れて飛ぶピーター飛ぶポールは戻ってくるピーターは戻ってくるポール。庭に小さな鳥は低く隠れる虫を探しに行く。ピーターは誰もキャッチすることはできませんポールバックホームピーターバックホームポール!

二つの小さなディッキー鳥が壁、ピーターという名前の1、ポールという名前の上に座って:

これは、元の文章が持っていたすべてのコンマがありませんでした。ピーターを飛ばして、ポールを飛ばして、ピーターに戻って、ポールに戻って来てください。小さな鳥たちが行く庭には、低く隠れるワームを探します。ピーターは1つをキャッチすることはできません、どちらもできないポール、家に戻ってピーター、帰宅ポール!

再作成された文章には、元の文章と同じ数のカンマを使用します。どうすれば修正できますか?上、座って、

二、少し、ディッキー、鳥:

  • はまた、私は( " ""、").replaceを取り出して、それは私にあまりにも多くのカンマを与えたので、それはそれは悪化しピーター、戻って、ポール、戻って、ポール。戻って、戻って、ポール。 、庭園、小さな、鳥、見て、探して、ワーム、それを隠す、低くする、ピーター、キャッチすることはできません。 ,,,ポール!

+0

まあ、あなたは 'replace("、 "、" ")'を持っているので、カンマを積極的に探して空の文字列で置き換えます。それを削除するとどうなりますか? – roganjosh

+0

@roganjoshすべての単語の後にコンマをつけたが、たびに2つのコンマがある。 –

+0

これは、リストの_string表現を 'para2 = str(para)'などに保存しているということだ。アイテムのリストを持つと、リストのような文字列があり、リスト内のアイテムを区切った(ビジュアル)コンマは、その文字列の不要なコンマになります。これには、未処理のデータを保存する別の方法を考えたり、この問題の後にクリーンアップする方法がありますが、これはあまり役に立たないと思います。この割り当てから、私はファイル全体の文字列ではなく個々の行としてデータを格納することになっていると思いますが、それについてはわかりません。 – roganjosh

答えて

0

あなたは置き換えることができます:

sentence = words[0].replace("[","").replace("]","").replace("'","").replace(",","") 

で:

sentence = words[0].replace("[","").replace("]","").replace("',","").replace("'", "") 

代わりに空の文字列で、すべてのコンマを置き換えるので、あなただけの引用が先行しているカンマを交換する必要がありますマーク。

+0

ありがとうございました。 –

関連する問題