找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4438|回复: 1

[求助] python 中的文件对象与循环读取。

1

主题

1

帖子

1

积分

贫民

积分
1
早起的虫子 发表于 2017-2-15 21:04:21 | 显示全部楼层 |阅读模式
读取文档的时候,open 函数返回一个文件对象,当对这个文件对象进行for循环赋值之后就可以读取文件的内容;但是简单的将open返回的对象进行赋值的之后得到的却还是一个文件对象;
请教给位大牛:
简答的赋值与for 的循环赋值之间有什么本质的区别?


f=open(r"e:\python01\01.txt","r")
i=0
for x in f:
    print(x)
print(x,f)
a=f
print(a)


显示结果:
hello world!
hello world! <_io.TextIOWrapper name='e:\\python01\\01.txt' mode='r' encoding='cp936'>
<_io.TextIOWrapper name='e:\\python01\\01.txt' mode='r' encoding='cp936'>
>>>

回复

使用道具 举报

0

主题

27

帖子

27

积分

贫民

积分
27
maximal_ideal 发表于 2017-2-16 12:40:47 | 显示全部楼层
没有太理解LZ的意识,就按照LZ的代码简单的说说吧
for x in f:
这个语句的本质就是调用f自己的迭代器然后把值赋给x
文件对象 默认的迭代器就是读取文件的一行并返回其内容
所以以上语句中x的值被赋值成了文件f中一行的内容

python中一般的赋值可以看成的C/C++的地址传递(虽然这么说不太严谨)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表