在Python中调用read()函数两次

时间:2018-01-02 16:26:06

标签: python

我想在2维Gridworld中读取并将其转换为2D字符串列表。

我使用open(" filename")函数读入文件。 我的代码可以工作,但是一旦我用.read()函数打印出gridfile,它就不再起作用了。输出是Gridworld和空列表(['']和 [['']])。 如果我删除了print语句,它就可以正常工作。

任何人都可以向我解释为什么会这样吗?似乎python已经以某种方式"使用"调用.read()函数时无法调用它的文件......

grid_file = open("3by4.grid")

def transform_to_lists(grid_file):

  ***print(grid_file.read())***


  onedim_list = grid_file.read().split('\n')

  twodim_list = [i.split(' ') for i in onedim_list]

  return twodim_list

print (transform_to_lists(grid_file))

1 个答案:

答案 0 :(得分:1)

您的print语句已经读入整个文件,您的第二次尝试没有其他内容可读。如果您需要先打印内容然后进行分析,请将内容分配给变量。

a = grid_file.read()
print (a)
onedim_list = a.split('\n')

....