如何在python中保存文件内容?

时间:2013-01-12 18:26:47

标签: python file matrix python-2.7

我刚刚开始研究python,这是一个非常基本的问题:

我有input.txt,其中包含以下测试用例:

b---d
-d--d
--dd-
--d--
----d

现在我想借助python代码在5 X 5 Matrix中保存上述内容。因此,当我想要返回matrix[0][2]时,它会返回-

我该怎么做? 我试过了,但打印错了答案。

2 个答案:

答案 0 :(得分:5)

这非常简单,因为字符串和文件也是可迭代的:

with open('input.txt') as matrixfile:
    matrix = [list(line.strip()) for line in matrixfile]
字符串上的

list()将其转换为单个字符的列表;我们使用.strip()删除任何额外的空格,包括换行符。 matrixfile打开文件对象是可迭代的,因此我们可以循环它来处理所有行。

结果:

>>> matrix
[['b', '-', '-', '-', 'd'], ['-', 'd', '-', '-', 'd'], ['-', '-', 'd', 'd', '-'], ['-', '-', 'd', '-', '-'], ['-', '-', '-', '-', 'd']]
>>> matrix[0][2]
'-'

答案 1 :(得分:2)

因此,由于Martijn发布明显答案的速度更快,所以这是另一个想法:

您实际上根本不需要创建嵌套列表(“矩阵”):

with open("input.txt") as infile:
    matrix = [line.rstrip() for line in infile]

为您提供了一个列表,其中包含五个可以编入索引的字符串(完成后将返回单个字符),就像嵌套列表一样:

>>> matrix
['b---d', '-d--d', '--dd-', '--d--', '----d']
>>> matrix[0][2]
'-'