文件打开:

1. f = open('yesterday,‘r+’,encoding = ‘utf-8’) 读取的方式加载为Utf-8

r    打开文件并写, 只适用于文字类

r+   打开文件并读写,文件的指针定位在文件的开始位置;文件不存在就报错

w   打开文件只读操作, 如果文件存在就清空文件,文件不存在就创建文件

w+  打开文件并写读,如果文件存在就清空文件,从新写入,如果文件不存在就创建文件

a    打开文件并追加, 文件存在时,就追加在文件的后面,如果文件不存在就创建

a+  打开文件并追加读,文件存在时,文件指针定位在文件的开始位置,文件不存在,则创建新的文件,写入时,添加到文章末尾,并且指针也指向文章末尾

wb  进行二进制文件的写      多用于exe, elf, jpeg格式的文件

rb   进行二进制文件的读

在读文件时的5种读取方式:

1.  f.read()       按原来格式全部读取

2.  f.read(n)      读取n个字符或者字节

3.  f.readline()    只读取一行

4.  f.readlines()  全部读取,然后储存在一个列表中

5.  for 循环   使用的是生成器,因此读取速度快,且每次在内存中都只存在一行

文件迭代器:

#举例 在文件第3行打出(‘----分隔符----’)

count = 0

  for line in f:

       count += 1

       if count == 3:

             print((‘----分隔符----’)

             continue

        print(line)

 #速度较快

光标:

print(f.tell())  显示光标的位置 

print(f.seek(0)) 设置光标的位置  f.seek(0, 2)  设置光标的位置在结尾

其他操作

f.readable()  判断是否可读

f.writeable()  判断是否可写

f.truncate(size)  size表示截取的范围,在打开文件时,必须采取写的方式,因此这里可以使用a+, 或者r+

读条的实现

import sys 

import time

for i in range(10):
     sys.stdout.write('#')  #输出字符不换行

     sys.stdout.flush()       #强制刷新

      time.sleep(0.1)

2. with open('yesterday.txt', 'r', encoding = 'utf-8') as f:           #文件打开的另外一种方式

           for line in f:

                 print(line)

 

 

3. 文件的修改

import os 

f_new = open('yesterday3.txt', 'a')

f = open('yesterday.txt','r', encoding = 'utf-8')

for line in f:

     if  '小红'  in line:

          line = line.replace('小红', ‘’小明“)

      f_new.write(line)

f.close()

f_new.close()

os.remove(''yesterday3.txt'')

os.rename('yesterday.txt', 'yesterday3.txt') 

posted on 2018-05-14 14:28  python我的最爱  阅读(214)  评论(0编辑  收藏  举报