2017-02-15 15 views
-3

テキストファイルを読みました。そして内容は、私は句読点を削除し、すべて小文字に変更し、最終的に、私は新しい行に各単語を印刷しました。しかし、私が今問題を抱えているのは、これらの内容をアルファベット順にソートすることです。後で、私は新しいテキストファイルに保存します。今、私は(sortメソッド)を使用することができません。私が.method-accessifierをタイプするたびに、それはどのようにソートメソッドではありません。だから私の質問は、上記のように私が以前に行ったテキスト操作の後、どのようにアルファベット順に並べ替えるのですか?テキストファイルのコンテンツをPythonで並べ替え

punctuations = '''!()-[]{};:'"\,<>./[email protected]#$%^&*_~''' 
no_punct = "" 

#Open file 
file = "research.txt" 
f = open(file , 'r+') 

#read file 
contentOfFile = f.read() 


#Remove punctuations from file content 
for char in contentOfFile: 
    if char not in punctuations: 
     no_punct = (no_punct + char) 


#print "Output of formatted document is" 
for word in no_punct.lower().split(): 
    print word 

私が得た以上の助けを借りて、私はついにマイルストーンを達成することができました。しかし、私はコンソールに印刷するとうまく印刷されますが、新しいファイルを作成してコンソールに表示されるように単語を保存しようとすると、単語は新しいファイルに保存されたときにはフォーマットされません。しかし、むしろすべての言葉は一つの長い直線で保存されます。 "newFile.txt"という新しいテキストファイルを作成した後、すべてnf.write(word)を追加しました。私はこれが自動的に各単語をtextFileに書式設定され、新しい行に追加すると考えました。これは間違っていますか?ありがとうございました。

punctuations = '''!()-[]{};:'"\,<>./[email protected]#$%^&*_~''' 
no_punct = "" 

#Open file 
file = "research.txt" 
f = open(file , 'r+') 


#read file 
contentOfFile = f.read() 


#Remove punctuations from file content 
for char in contentOfFile: 
    if char not in punctuations: 
     no_punct = (no_punct + char) 


#create new file to save formatted words to 
newFile = "newFile.txt" 
nf = open(newFile , 'w+') 


#write words to the new textFile 
for word in sorted(no_punct.lower().split()): 
    nf.write(word) 


    #print word 
+0

@ ZdaR、 'sort(list)'とはどういう意味ですか? 'sort'組み込み関数はありません。 –

+0

個々の単語または各行をアルファベット順にソートしますか? –

+0

返事をありがとう。申し訳ありませんが、私の説明ではあまり明確ではありませんでした。しかし、私の質問は@pschillによって返答されました – user3761841

答えて

0

あなたはsorted使用することができます

for word in sorted(no_punct.lower().split()): 
    print word 

を使用すると、行毎にファイルに結果を書き込みたい場合、あなたはこれを試すことができます:もちろん

with open("newFile.txt", "w") as f: 
    for word in sorted(no_punct.lower().split()): 
     f.write(word + os.linesep) 

をあなたがでimport osを追加する必要がありますあなたのファイルの先頭に改行文字os.linesepが見つかるようにします。

+0

ありがとう。これは私のためにうまくいった。 – user3761841

+0

多くの感謝.... – user3761841

+0

とこの新しいソートされた単語をテキストファイルに保存?それについてどうすればいいですか?私はちょうどこの形式を使用しました 'f = open( "newText.txt"、 "w")' – user3761841

-1
word_in_file = no_punct.lower().split() 
word_in_file.sort() 

あなたのためにこの仕事をしていますか?

+0

私の得点を見ると、私は答えがノーだと思います:何がうまくいかないのですか? – rmeertens

+0

実際それはしました。私は上記のユーザーからの答えを使用しました。あなたはそれらをアルファベット順に実際に印刷しましたが、それぞれの単語を新しい行に印刷する必要があります。しかし、それはあなたがうまくいきました。ありがとう... – user3761841

関連する問題