0

最初に 2 つの .txt ファイルをプログラムに読み込み、後でこれら 2 つの .txt ファイルを結合して、結果のファイルで複数のタスクを実行するコードを作成しています。

今のところ、ファイルを読み取って変数に割り当てることができ、2 つのライブラリを別々に印刷できますが、ファイルを結合する方法がわかりません。

これまでに書いたコードは次のようになります。

def ReadAndMerge():
    library1=input("Enter 1st filename to read and merge:")
    library2=input("Enter 2nd filename to read and merge:")
    namelibrary1= open(library1, 'r')
    namelibrary2= open(library2, 'r')
    library1contents=namelibrary1.read()
    library2contents=namelibrary2.read()
    print(library1contents)
    print(library2contents)
    combinedlibraries=(library1, 'a')
    # ^ this didnt work, but it was what i have tried so far
    combinedlibraries.write(library2)
    print(combinedlibraries)
    return

ReadAndMerge()

ライブラリに別のライブラリを追加しようとしましたが、Python は私がやっていることを気に入らなかったようです。

ライブラリ 1 は次のようになります。

Bud Abbott 51 92.3
Mary Boyd 52 91.4
Hillary Clinton 50 82.1

ライブラリ 2 は次のようになります。

Don Adams 51 90.4
Jill Carney 53 76.4
Randy Newman 50 41.2

これら2つのライブラリを組み合わせる方法を知っている人はいますか?

結合されたライブラリを印刷すると、次のようになります

Bud Abbott 51 92.3
Mary Boyd 52 91.4
Hillary Clinton 50 82.1
Don Adams 51 90.4
Jill Carney 53 76.4
Randy Newman 50 41.2

これらは単純なライブラリです。50 を超える名前の大きなライブラリをテストし、2 つのライブラリを結合する方法を誰かが教えてくれれば、それは素晴らしいことです。

4

1 に答える 1

1

@PedroRomano がコメントしたように、問題の一部は、機能してopenいないと言う行に呼び出しがないことです。ただし、後のコードはまだ正しく動作しません。

また、開始データ ファイルの 1 つを上書きするのは、おそらく悪い考えだと思います。コードがべき等ではなくなるため、複数回実行すると引き続き副作用が発生します。

代わりに私が提案するのは次のとおりです。

def ReadAndMerge():
    library1filename = input("Enter 1st filename to read and merge:")
    with open(library1filename, 'r') as library1:
        library1contents = library1.read()

    library2filename = input("Enter 2nd filename to read and merge:")
    with open(library2, 'r') as library2:
        library2contents = namelibrary2.read()

    print(library1contents)
    print(library2contents)

    combined_contents = library1contents + library2contents  # concatenate text

    print(combined_contents)

    combined_filename = "combined.txt"    # ask user for name here?
    with open(combined_filename, "w") as combined_file:
        combined_file.write(combined_contents)

ステートメントは、ファイルのwith処理が完了するとファイルを閉じます (これは、作成中に特に重要です)。さらに、ソース ファイルの 1 つに追加するのではなく、マージされたデータに特定のファイル名を使用します。

ただし、考慮したい質問の 1 つは、結合したデータ セットをファイルに書き込む必要があるかどうかということです。そのファイルを再度開いてデータを再度読み込む場合は、中間のステップをスキップして、結合されたデータを直接使用することができます。必要に応じて、上記のコードの最後の 3 行を次のように置き換えることができreturn combined_contentsます。

最後に、実際の質問とはほとんど関係のない点です。データを「ライブラリ」と呼ぶのは悪い考えです。この単語は、コンピュータ プログラミング (つまり、プロジェクトの外部からロードするソフトウェア) ではかなり特殊な意味を持ち、データを参照するためにそれを使用すると混乱します。

于 2012-11-19T02:21:42.377 に答える