2016-06-13 7 views
-4

私はPythonの初心者で、この問題を理解することができません。誰かが自分のコードに指示が反映されているかどうかを確認できますか/それを修正する方法はありますか?ありがとうございました!Python:ファイルを辞書順で並べ替えて結果をファイルに書き込むにはどうすればよいですか?

質問名前srcのファイルを辞書順に並べ替え、その結果をsrcを変更せずに名前dstのファイルに書き出すsortFile(src、dst)関数を記述してください。ヒント:fがファイルオブジェクトの場合、list(f)はファイル全体を行のリストとして読み込みます。並べ替えにはリストのsortメソッド、文字列のリストを連結するには文字列のjoinメソッドを使用します。たとえば、text.txtをソートすると、次のファイルが表示されます。

リンゴは赤です。

バナナは青です。

果物は素晴らしいです。

TEXT.TXTファイル:

リンゴは赤です。

バナナは青です。

果物は素晴らしいです。

マイコード:

def sortFile(src, dst): 
    x, y = open(src, 'r'), open(dst, 'w') 
    b = x.readlines() 
    x.close() 
    b.sort() 
    for i in b: 
     print((str(i).strip()), file=y) 
    y.close() 

答えて

1

私はouputをファイルに書き込むfile.write(文字列)を使用します。

def sortFile(src, dst): 
    x, y = open(src, 'r'), open(dst, 'w') 
    b = x.readlines() 
    x.close() 
    b.sort() 
    for i in b: 
     y.write(i.strip() + "\n") 
    y.close() 

私はこれをテストし、それが正しい結果を生成する必要があります。

+0

この場合、 '.write'と' print'は異なる出力を生成すべきではありません。なぜあなたはそれが違いをもたらすと思いますか? – SethMMorton

+0

@spookyblackたとえば、sortFile( "testFile.txt"、 "output.txt")を呼び出します。 2番目のパラメータは、そのファイルが既に存在する場合は上書きされることに注意してください。 – Andrew

+0

また@SethMMorton私はそれが違いを生むとは思わない、write()はあなたがやっていることがはっきりしているので、より良いコード練習imhoです。 – Andrew

関連する問題