|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
当文件打开操作在调用os模块之后的情况就会报错!当文件打开操作在调用os模块之前的情况就不会报错!
测试代码如下(当文件操作在调用os模块之后):
- from os import*
- f=open('G:\\测试.txt','a+')
- list1=['1','2','3','4']
- f.writelines(list1)
- f.close()
复制代码 执行结果:
报错!!!
TypeError: an integer is required (got type str)
测试代码如下(当文件操作在调用os模块之前):
- f=open('G:\\测试.txt','a+')
- from os import*
- list1=['1','2','3','4']
- f.writelines(list1)
- f.close()
复制代码 没有报错,并且创建成功!
这是为什么呢?????BUG吗还是什么原理??
求大神解答
错误是由于从os模块引入了所有的函数导致的,os模块下有一个open函数,接受整型的文件描述符和打开模式,from os import *引入os模块的open函数,覆盖了python内建的open函数,导致错误。
删除from os import *这行,然后再根据需要,指定引入os模块下的函数
建议任何时候都不要使用from module import *方式引入模块函数。
|
|