首页 > 编程语言 > 详细

python学习笔记(四)-文件操作

时间:2018-01-04 10:20:06      阅读:261      评论:0      收藏:0      [点我收藏+]

文件读写
"""
一、文件打开有3种方式
1、读 r #如果打开的文件的时候没有指定模式,那么默认是读
读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错
2、写 w #w模式会清空原有文件内容
写读模式 w+
只要沾上w,他就会把文件内容清空
3、追加 a
追加读写
二、文件指针
f.seek(0)#seek移动指针的时候,只对读好使,对写不好使
当open时文件指针是在初始位置1,当读取4个字节内容是文件指针位置就在4,再write时,文件指针从4移到8,所以,只要控制了文件指针,就能重复的读取了!
操作文件指针可以通过seek方法:
seek(offset, whence):移动文件指针
offset:偏移量,可为负数
whence:偏移相对位置

偏移相对位置为os模块当中的SEEK_SET、SEEK_CUR、SEEK_END:
   os.SEEK_SET:表示文件的相对起始位置
os.SEEK_CUR:表示文件的相对当前位置
os.SEEK_END:表示文件的相对结束位置
三、python2\3的区别
file() #python2里面打开文件还可以用file()
open() #python3
"""

f = open(ybq.txt,a+,encoding=utf-8)
f.seek(0)#seek移动指针的时候,只对读好使,对写不好使
print(f.tell())#查看当前文件指针的位置
f.truncate()#清空文件内容
print(f.read())#读取文件里面的全部内容
print(f.readline())#只读取一行的内容
print(f.readlines())#读取文件里面所有的内容,把文件里面每一行的内容放到一个list里面
f.write(mpp+\n) #写入字符串
print(f.read())

names = [ybq,mpp,tlx,ply,yjy]
f.writelines(names) 
st = ybq,mpp,tlx
f.writelines(st) 
f.write(st) #只可写入不可迭代的对象,如字符串
tu=(sdf,sdfs,sdfsd)
f.writelines(tu) 
d={name:xx}
f.writelines(d) #写的时候,传入一个可迭代的对象,如列表、元祖、字典
f.close()

#打开文件,通过循环向文件中写入数据
f = open(a.txt, w)
for i in range(3):
 f.write(xx+\n)
f.close()

#高效处理文件的方法
fw  = open(ybq.txt,encoding=utf-8)
count = 1
#直接循环文件对象的话,就是循环文件里面的每一行

for f in fw:
   f = f.strip()  #去掉空、换行符
   stu_lst = f.split(,)   #按‘,’分割成列表
   print(stu_lst)

文件指针
实验文件data.txt如下:
This file is data.txt
hello world!
My name is mark.

文件指针初始化

f = open(data.txt,r+)
print f.tell() #
f.write(nice to meet you)
f.flush()  #flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
print f.tell()
print f.read()
f.close()

相应输出:
//print f.tell()
0
//print f.tell()
16
//print f.read()
a.txt
hello world!
My name is mark.

说明:以’r+‘模式打开文件,文件指针所指位置为0
f.write(‘nice to meet you’)会覆盖原文件内容,文件指针随着移动
print f.read()只会输出剩余内容

f = open(rtest2.txt,a+)
print f.tell()
f.write(nice to meet you)
f.flush()
print f.tell()
print f.read()
f.close()

相应输出:
//print f.tell()
52
//print f.tell()
68
//print f.read()

说明:以’a+’模式打开,文件指针所指位置为文件尾,此例为52
f.write(‘nice to meet you’)会在原文件内容尾添加,文件指针随着移动至68
因为随着write()函数,文件指针已经移到文件末尾,所以print f.read()没有输出

python学习笔记(四)-文件操作

原文:https://www.cnblogs.com/lincy/p/8191173.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!