2.5.2 文件的操作

2.5.2 文件操作

1,文件流程控制

  1. 打开文件,得到文件句柄并赋值给一个变量。
  2. 通过句柄对文件进行操作。
  3. 关闭文件。
    注意:文件句柄包含文件的存储路径,文件名,文件内容,文件指针等等信息。

2,基本操作

  • 实例一:
f = open('lyrics') #打开文件
first_line = f.readline()
print('first line:',first_line) #读一行
print('我是分隔线'.center(50,'-'))
data = f.read()# 读取剩下的所有内容,文件大时不要用
print(data) #打印文件
f.close() #关闭文件

3,打开文件的模式有

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则创建;存在则删除内容后修改;】
  • a,追加模式。【可读; 不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

  • rU
  • r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb 以二进制读模式打开以二进制读模式打开
  • wb 以二进制写模式打开以二进制写模式打开

4,文件读取

# f.readline f 一次将文件全部加载内存,适合度小文件
# for line in f: print(line) 迭代循环一行行读,节约内存

5,文件方法

# 计算光标当前位置,按照字符位置来不是按照行数。
f.tell()
# 让文件指针指到指定位置
f.seek(10)
# 查看文件编码
f.encoding()
# 查看文件存在内存中的编码
f.fileno()
# 将内存中的文件信息刷新到磁盘,防止数据丢失
f.flush()
# 从文件开头截断到指定的位置
f.truncate()
# 关闭文件f
f.close()
  • 实例二:
# 进度条
import sys,time
for i in range(100):
    time.sleep(0.1)
    sys.stdout.write("#")
    sys.stdout.flush()

6,使用with打开文件

# 为了避免打开文件后忘记关闭,可以通过管理上下文,即:
with open('log','r', encoding="utf-8") as f:
with open('log1','r', encoding="utf-8") as f1,open('log1','r', encoding="utf-8") as f1:
posted @ 2018-08-26 11:09  Diligent小十  阅读(166)  评论(0编辑  收藏  举报