博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python文件操作出错
阅读量:3778 次
发布时间:2019-05-22

本文共 779 字,大约阅读时间需要 2 分钟。

本来想对一个文件重复执行某一个函数,但是只有第一次执行函数时有结果,后面的几次都没有结果,最终发现是在函数外打开文件,第一次执行没有问题,第二次执行时,文件已经打开,函数找不到该文件了,或者是文件没有关闭,具体原因需要查看python内部的执行机制。举例如下:

定义一个函数,输出文本文件里的每一行,首先打开文件,然后执行函数,第一次执行正常,第二次执行没有任何输出。

file = open('temp.txt')def pri(file):    for line in file:        print(line)pri(file)//此函数正常输出print("===============")pri(file)//此函数无输出

修改为:

address = 'temp.txt'def prin(address):    file = open(address)    for line in file:        print(line)prin(address)prin(address)

将函数参数改为文件地址,在函数内部打开文件,则两次都正常输出。

另外一种方式也证明了打开的文件不能执行第二次,如下:

print('---------------')file = open('temp.txt')def pri(file):    for line in file:        print(line)pri(file)print("===============")file.close()file = open('temp.txt')pri(file)

第二次执行函数之前先关闭文件再打开文件,第二个函数就可以正常执行了。

打开的文件是一个<class ‘_io.TextIOWrapper’>的对象,该对象可能只能用一次。

转载地址:http://vypvn.baihongyu.com/

你可能感兴趣的文章
jsp 的常用标签
查看>>
Listener 监听器
查看>>
SpringBoot自动配置原理
查看>>
IDEA连接mysql又报错设置时区!Server returns invalid timezone.
查看>>
员工管理系统二:首页和国际化实现
查看>>
员工管理系统四:员工列表实现
查看>>
员工管理系统五:增删改员工实现
查看>>
Redis的安装与卸载
查看>>
项目阶段五:验证码
查看>>
项目阶段五:购物车
查看>>
项目阶段六:订单模块的数据库准备与dao、service层
查看>>
项目阶段六:后台管理的订单模块
查看>>
练习——图书管理系统八(根据图书编号填充图书名称下拉控件和验证手机号)
查看>>
将windows下文件上传至服务器中
查看>>
正则表达式:贪婪模式与懒惰模式
查看>>
机器学习之sklearn.preprocessing.LabelBinarizer()的用法
查看>>
决策树剪枝的思想
查看>>
创建二叉树和遍历二叉树
查看>>
算法训练 区间k大数查询
查看>>
算法训练 K好数
查看>>