Python初学者常见错误总结(一)
下面总结是自己学习python过程中遇到的一些问题,对于自学的人可以很好的避免以下问题的发生,给其他新手一些解决办法,同时也是自己总结记录。
问题1:单独的open和with open() as fp 这两种形式的区别是什么?
代码:
f=open('C:\Users\Desktop\/test.txt','a+') #a+ 追加方式写入
f.write("单独open输入")
f.close()
总结:代码分别由打开文化、写入文件、关闭文件。当代码过多程序员会忘记写关闭。f=open系统需要为这个文件操作腾出一个空地(运行内存),一直供这个文件操作使用,直至执行”fp.close()”语句时,相应的内存空间才会被释放。所以说忘记资源,造成浪费。
代码:
import fpas fp#自动关闭,不占用资源
with open("C:\Users\Desktop\/test.txt","a+")as fp:
fp.write("123123")
print(fp.closed())
2.读写文件可以按照哪些方式读 ?
3.一次读一行数据用readlines,那么readlines和xreadlines区别
代码:单独使用
f= open('./test.txt')
print f.xreadlines() # 读多少缓冲多少,对于大文件,不占内存
print f.readlines()# 将要读取的数据一次性的存储到缓存区,并返回生成的list.
f.close()
代码:循环使用
# 返回一个list
for line in f.readlines()
print line
# 返回一个生成器
for line in f.xreadlines()
print line
总结:
上面那个readlines和xreadlines,第一个是把你要读取的数据一次性读到缓冲区,生成一个list,每次返回给你需要读取的数据。后面的那个是你读多少缓存多少,是个迭代器。所以对于小文件来说,他们俩没区别,对于很大很大的文件,readlines函数更占内存,影响效率,所以通常都会用xreadlines 当然,现在的python已经支持*** in *** 这种形式,这种形式和xreadlines效率应该是一样的。