如何在 Python3 中从没有格式字符(反斜杠/撇号)的文本文件中导入行

赛博恩

第一篇文章和新手编码。如果这是多余的,请道歉。我搜索了高低,还没有遇到特定于这个特定问题的东西。

我正在使用 Python3 设计一个选择你自己的冒险游戏。它的文本有点繁重,所以我想将对话和其他故事方面保存在一个单独的文本文件中,以便我可以保持我的代码尽可能简洁和干净。我尝试了几种不同的策略但没有成功,包括尝试在文本文件中实现字典以在脚本中使用,如索引。我并没有贬低这种策略,而是继续前进,这是我目前所处的位置:

def intro():
    intro = open("try.txt", "r")
    print(intro.readlines(0))
intro()

其中 0 是文本文件中的第一行文本。我希望在通过提示浏览脚本时可以选择要抓取和显示的单行,但输出包括大部分文本周围的方括号和撇号前的反斜杠。例如:['公海上的紧张局势正在加剧。有麻烦了。']

有什么方法可以排除使用此方法在打印输出中添加转义字符和/或方括号?

提前致谢!

托德

您看到的转义字符不是来自文件. 发生的事情是你在调用时得到一个字符串列表readlines()

>>> f = open("foo.txt", 'r')
>>> f.readlines()
['hello world!\n', 'hello world!\n', 'hello world!\n', 'hello world!\n', 'hello world!\n', 'hello world!\n', 'hello world!\n', 'hello world!\n', 'hello world!\n', 'hello world!\n']

这就是调用函数时返回的内容。然后您在repr()列表上调用,它主要用于将对象显示为结构化的类似代码的文本 - 而不是将它们显示为常规字符串。它在错误消息或日志输出等方面很有用。

要在调用后从文件中获取单行文本getlines()- 将所有行作为列表返回,您可以像任何其他列表一样对其进行索引:

print(myfile.getlines()[0])

使用print(...)这种方式 ^,您可以获得没有任何额外字符的行内容。

print(repr(myfile.getlines()[0]))

并且,使用print(...)这种方式 ^,将显示引号和转义换行符等:

所以这里没有文件文本编解码器的奇怪之处。这就是它应该如何工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章