打开文件 - 如何使.txt文件返回列表列表

时间:2013-08-26 09:20:57

标签: python file list

好的,所以我有这个txt文件,我需要打开,当我使用时,它看起来像这样 下面的代码(实际换行缩进除外,不是\ n语法和''等于空格);

"#####\n #   #\n ### #\n #X  #\n #####"

...然后将其转换为列表 像这样的名单;

[['#', '#', '#', '#', '#'],
['#', ' ', ' ', ' ', '#'],
['#', '#', '#', ' ', '#'],
['#', 'X', ' ', ' ', '#'],
['#', '#', '#', '#', '#']]

这是我的代码,我能够将正常的txt文件打印到Shell中,但我不能 弄清楚如何使用列表列表将其转换为上面。

def file_open (filename):
openfile = open(filename, 'rU') 
str1= openfile.read()           
openfile.close()                
print str1

任何人都可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

使用字符串s ...:

>>> s = "#####\n #   #\n ### #\n #X  #\n #####"

您可以按每个新行拆分:

>>> print s.split('\n')
['#####', ' #   #', ' ### #', ' #X  #', ' #####']

进一步分裂:

>>> print [list(i) for i in s.split('\n')]
[['#', '#', '#', '#', '#'], [' ', '#', ' ', ' ', ' ', '#'], [' ', '#', '#', '#', ' ', '#'], [' ', '#', 'X', ' ', ' ', '#'], [' ', '#', '#', '#', '#', '#']]

获取您的清单。

答案 1 :(得分:0)

你可以简单地使用'eval'函数来评估存储在字符串中的任何python代码:

alist = eval(str1)

注意:但请注意,这本质上是不安全的(因为字符串可能包含恶意python代码)。但也许这不是你的担忧。