文件分为两类:文本文件和二进制文件

  • 文本文件:记事本或其他文本编辑器能正常显示、编辑。
  • 二进制文件:无法用普通文件处理软件进行编辑,常见的图片、音频、可执行文件、资源文件等都属于二进制文件

一、文件对象

1.open()函数

open('文件名','打开模式'),如:f1 = open('file.txt','w')

注:跟该python文件同目录下,直接用文件名即可,其他目录下的文件要用绝对路径D:\hyk\File python\text.txt./text.txt的格式

用with可以自动管理资源, f1 = open('file.txt','w') 用with open('file.txt','w') as f1代替

2.文件打开模式

  • r
  • w
  • a:追加模式
  • b:二进制模式,一般与其他模式组合,像保存图片用b+
  • +:读写模式,可与其他模式组合使用

3.文件对象常用方法

read([size]):读取size个字符(默认为全部),并将指针移到size字节后面。之后重点介绍

readline():读取一行内容,作为结果返回

readlines():每行内容作为一个字符串存入列表,并返回该列表

seek(位置,[where]):

  • 参数where:默认为0
    • 0:从文件头开始计算
    • 1:从当前位置开始计算
    • 2:从文件尾开始计算

tell():返回指针的当前位置

truncate([size]):默认删除 从当前指针位置到文件末尾的内容。指定size后,不论指针在哪,都只留下前size个字节

write(s):将字符串s写入文件

writelines(s):将字符串列表写入文件 (不添加换行符)

flush():将缓存区内容写入文件,但不关闭文件

close():将缓存区内容写入文件,同时关闭文件

4.read()和seek()函数

注:read()后会把指针移到读取内容之后

text.txt内容:

f1 = open('text.txt','r+')
print(f1.read(6))
print(f1.read(1))
f1.close()
f1 = open('text.txt','r+')
print(f1.read(6))
f1.seek(2,0)
print(f1.read(1))
f1.close()

注:read([size])的是字符数,中文算1个字符,seek()的参数是字节数,中文算2个字节

如:

text.txt内容: 一二三四

f1 = open('text.txt','r+')
f1.seek(2,0)
print(f1.read(1))
f1.seek(4,0)
print(f1.read(2))
f1.close()

5.read、readline、readlines

文本内容:

read():指定字符数,默认全部字符,直接输出和文本一摸一样的内容

with open('text.txt','r') as f:
    a = f.read()
    print(a)

readline():指定字符数(只能在一行内,如果指定的字符数超过一行,则无效),默认一行

with open('text.txt','r') as f:
    a = f.readline()
    print(a)
with open('text.txt', 'r') as f:
    b = f.readline(2)
    print(b)
with open('text.txt', 'r') as f:
    c = f.readline(10)
    print(c)

readlines():指定字符数(如果指定的字符小于这一行,仍会输出这一整行),默认全部行,换行会输出\n,输出的是一个含多个字符串的列表

with open('text.txt','r') as f:
    a = f.readlines()
    print(a)
with open('text.txt','r') as f:
    a = f.readlines(2)
    print(a)
with open('text.txt','r') as f:
    a = f.readlines(6)
    print(a)

二、文件级操作

1.os和os.path模块

用法示例:

三、目录操作

os和os.path

os和os. path模块除了支持文件操作,还提供了大量的目录操作方法

示例: