Python的文件处理

一、文件处理的流程

  1.打开文件,得到文件句柄并赋值给一个变量
  2.通过句柄对文件进行操作
  3.关闭文件

  示例:

d = open('abc')
data1 = d.read()
print(data1)
d.close()

二、关于文件处理的函数

readable()    #对文件是否可读进行判断
readline()        #读取文件一行
readlines()    #把文件处理成列表的形式
writeable()    #对文件是否可写进行判断
writelines()    #将内容已列表的形式写入文件
write()        #将内容写入文件
    #注:写入的内容只能是字符串格式

  示例1:文件的更改

read = open('aaa','r',encoding='utf-8')
data = read.readlines()
read.close()

write = open('aaa','w',encoding='utf-8')
write.write(data[0])
write.close()

  示例2:文件的追加

add = open('aaa','a',encoding='utf-8')
add.write('333333333333333333333')
add.close()

三、文件处理’b’模式

  1.文件不管以什么编码保存到硬盘上,都是以二进制方式存储,所以在读取时可以直接用二进制来读取,rb
  2.rb,以二进制来读取,所以,不可以在使用encoding使用别的编码
  3.关于换行,windows以'\r\n'来换行,linux与unix以'\n'来换行
  4.对字符串进行编码-->encode,对二进制字节(bytes)进行解码—>decode

例:'b'模式进行查看

#源文件aaa内容:
aaa
bbb
ccc

*******************
b = open('aaa','rb')
data = b.read()
data1 = data.decode()
b.close()
print(data)
print(data1)


#结果:
b'aaa\r\nbbb\r\nccc'
aaa
bbb
ccc

  例:'b'模式进行写入

wb = open('aaa','wb')
wb.write(bytes('aaa',encoding='utf-8'))
wb.write('bbb'.encode('utf-8'))
wb.close()
#输出结果:
#aaa文件内容为:aaabbb

四、seek的使用方法

  file.seek()方法标准格式是:file.seek(offset,whence)
    offset:开始的偏移量,也就是代表需要移动偏移的字节数
    whence:给offset参数一个定义,表示要从哪个位置开始偏移;
        0代表从文件开头开始算起。
        1代表从当前位置开始算起。
        2代表从文件末尾算起。
        whence值为空没设置时会默认为0。

示例:

w = open('aaa','w')
w.write('aaa\nbbb\nccc')
w.close()

rb = open('aaa','rb')
rb_seek = rb.seek(2)
rb1 = rb.read(4)
print(rb_seek)
print(rb1)
#结果:
2
b'a\r\nb'

高端示例:处理最后一行数据:

rb = open('abc','rb')
chars = -20
for i in rb:
    while True:
        rb_seek = rb.seek(chars,2)
        rb_read = rb.readlines()
        if len(rb_read) > 1:
            print(rb_read[1])
            break
        chars = chars*2
rb.close()
posted @ 2018-12-07 22:49  better_feng  阅读(279)  评论(0编辑  收藏  举报