0

プレーン テキスト ファイルがあり、テキスト ファイルを使用して印刷の「記述どおりに印刷」機能を再作成しようとしています。

現在、テキスト ファイルには次のものがあります。

"""
Test1

Test1

Test1
""",
"""
Test2

Test2

Test2
""",
"""
Test3

Test4

Test5
"""

そして、私の目的は、これを 3 つの文字列のリストに読み込み、ランダム モジュールにそれらの文字列の 1 つを選択させ、最終的には """ または , なしで、書かれたとおりに正確に出力することです。必要に応じて、ファイルからこれらの文字を削除できます。は、私はちょうどそれがそうであるように書かれているものを正確に印刷するために印刷する方法を推測していました:

print("""
Test1

Test1

Test1
""")

(出力)

Test1

Test1

Test1

どんな助けでも大歓迎です。ありがとう!

編集:私は試しました:

import random
file = open('prebaked', 'r')
print(random.choice(file))

import random
with open('prebaked', 'r') as f:
    file = f.read()
print(random.choice(file))

import random
with open('prebaked', 'r') as f:
    file = list(f.read())
print(random.choice(file))
4

2 に答える 2

2

[ファイルに含まれているのは、文字列のリストの Python 構文とほぼ同じです]。これらを追加するast.literal_evalと、Python 構文を安全に評価し、文字列のリストを取得するために使用できます。

>>> from ast import literal_eval
>>> with open('myfile.txt', 'r') as f:
        file_contents = f.read()
>>> literal_eval('[' + file_contents + ']')
['\nTest1\n\nTest1\n\nTest1\n', '\nTest2\n\nTest2\n\nTest2\n', '\nTest3\n\nTest4\n\nTest5\n']
于 2013-06-04T13:12:29.773 に答える