将文件中的字符读入列表
Posted
技术标签:
【中文标题】将文件中的字符读入列表【英文标题】:Reading characters from file into list 【发布时间】:2016-02-11 15:48:18 【问题描述】:我有一个程序的一部分,代码如下
file1 = [line.strip()for line in open(sometext.txt).readlines()]
print ((file1)[0])
当代码被执行时,它给了我 txt 文件的全部内容,这是一个很长的句子, 我将如何阅读每个字母并将其放入列表中以分别索引每个字符?我使用了 list() 函数,它似乎将整个文本文件放入列表而不是每个字符。
【问题讨论】:
您可以使用索引从文本中获取字符 - 例如。"hello world!"[0]
。如果您需要列表,请使用list("hello world!")
顺便说一句:您的代码不会从文件中打印全文,而只会打印第一行。要在第一行打印第一个字符,您需要 print(file1[0][0])
【参考方案1】:
您可以使用file.read()
而不是file.readlines()
:
file1 = [char for char in open(sometext.txt).read()]
但是,您实际上并不需要列表理解;相反,您可以这样做:
file1 = list(open(sometext.txt).read())
另外,正如@furas 在他的评论中提到的,你不需要一个列表来建立索引。 str
也有一个叫做index
的方法,所以你可以说file1 = open(sometext.txt).read()
并且仍然可以使用file1.index()
。请注意,str
也有一个 find
方法,如果未找到子字符串,它将返回 -1,而不是引发 ValueError。
【讨论】:
【参考方案2】:有一个read()
就足够了。加。如果你想存储没有\n
和空格的列表,你可以使用:
char_list = [ch for ch in open('test.txt').read() if ch != '\n' if ch != ' ']
如果您想维护它们,可以删除 if
语句。
【讨论】:
以上是关于将文件中的字符读入列表的主要内容,如果未能解决你的问题,请参考以下文章