我有一个程序的一部分,代码如下
file1 = [line.strip()for line in open(sometext.txt).readlines()]
print ((file1)[0])
当代码执行时,它给出了txt文件的全部内容,这是一个很长的句子, 我将如何阅读每个字母并将其放在一个列表中以分别索引每个字符?我使用了list()函数,它似乎将整个文本文件放入列表而不是每个字符。
答案 0 :(得分:2)
您可以使用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。
答案 1 :(得分:0)
使用read()
就足够了。加。如果要存储没有\n
和空格的列表,可以使用:
char_list = [ch for ch in open('test.txt').read() if ch != '\n' if ch != ' ']
如果要维护if
语句,可以将其删除。