0

好的,所以我需要打开这个 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

任何人都可以帮助如何去做这件事吗?

4

2 回答 2

2

使用字符串s...:

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

您可以按每个新行拆分它以获得:

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

并进一步拆分:

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

获取您的清单。

于 2013-08-26T09:22:30.993 回答
0

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

alist = eval(str1)

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

于 2013-08-26T09:42:10.983 回答