将文件中的字符读入列表

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 语句。

【讨论】:

以上是关于将文件中的字符读入列表的主要内容,如果未能解决你的问题,请参考以下文章

将文本文件中的某些双精度读入列表

如何将文件读入 Python 中的列表? [复制]

如何将 csv 文件读入 SWI prolog 中的列表列表,其中内部列表代表 CSV 的每一行?

如何将 Groovy 中的文件读入字符串?

如何将文件中的特定数据读入数组字符串

如何将文件的内容读入C中的字符串?