2014-04-12 65 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你走了,我在最後添加了一個解釋。 –