Python list()函数与文件对象参数的奇怪行为

时间:2016-10-27 17:27:46

标签: python list file

尝试将文件对象传递给list函数无法获取文件对象列表。

x = open('example.txt', 'rb')
y = list(x)

输出为y = ['aaaaa'],而我希望得到一个文件对象列表:[<open file 'example.txt', mode 'rb' at 0x7fa03ced1300>]当然只包含一个元素。为什么list函数在这里改变了它的参数?

1 个答案:

答案 0 :(得分:2)

遍历文件对象会遍历文件中的行。

通常用法:

for line in f:
    # do something with the line

list构造函数的参数是可迭代的。参数将被迭代,列表将从迭代项创建。

用法示例:

list('abc')  # result: ['a', 'b', 'c']

合并后,list(f)会创建从文件中读取的行列表。

要实际创建包含一个文件对象的列表,请执行以下操作:

list_of_files = [f]