2014-04-12 63 views
-1

我有一个名为text.txt的文本文件,我想将其内容读入矩阵。我不确定如何做到这一点。使用文件IO创建矩阵

文本文件的内容是:

!!! 

@@@ 

我只是想保持字符,而不是换行。有没有办法做到这一点?

+0

你目前有什么代码?究竟是什么问题呢?你是什​​么意思“矩阵” - 列表?来自'numpy'的东西? – jonrsharpe

+0

@jonrsharpe我没有代码,因为我不知道如何处理它。我可以将一个文件读入一个变量,但我不知道如何把它放在一个2D列表中 –

+0

@novicecoder我的答案是什么意思? –

回答

0

我只想做:

with open('text.txt') as f: 
    data = [list(line.strip()) for line in f if line.strip()] 

演示:

>>> from pprint import pprint 
>>> lines = ['!!!\n', '\n', '@@@\n'] 
>>> pprint([list(line.rstrip()) for line in f if line.strip()]) 
[['!', '!', '!'], 
['@', '@', '@']] 

它是如何工作(逐行):

,所以我们采取线(迭代for line in f):

'!!!\n' 

然后我们将它的尾随空格与.rstrip()(包括换行符)分开。

'!!!' 

然后用list()

['!', '!', '!'] 

把它变成一个list列表解析之内,所以我们这样做,对于文件中的每一行。

但是,如果它包含除空白以外的内容,我们只会打扰该行 - 这就是if line.strip()所做的。

+0

这与我所寻找的非常相似,请您向我解释您的代码以及它是如何工作的 –

+0

@novicecoder你走了,我在最后添加了一个解释。 –