繁体   English   中英

从纯文本文件Python 3中读取和打印

[英]Reading and printing from a plain text file Python 3

我有一个纯文本文件,我正在尝试使用该文本文件重新创建打印的“书面打印”功能。

该文本文件当前具有:

"""
Test1

Test1

Test1
""",
"""
Test2

Test2

Test2
""",
"""
Test3

Test4

Test5
"""

我的目标是将其读入3个字符串的列表中,让随机模块选择其中一个字符串,并最终完全按书写的方式打印它,但不带“”“或。,如果需要,我可以从文件中删除这些字符是的,我只是在猜测如何获取打印以完全打印所写内容:

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))

逻辑:

  • 读取文件。
  • 根据','将字符串分成列表,并从字符串中删除空格和"""
  • 随机调用以从列表中选择。

码:

import random

with open('mytextfile.txt', 'r') as file_obj:
    str_list = [s.strip('\r\n\t "') for s in file_obj.read().split(',')]

print random.choice(str_list)

您的文件包含的内容几乎就是字符串列表的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']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM