Python入门:操作文件

一、文件分类

文本文件:由单一特定编码组成的文件,比如utf-8 编码、GBK 编码等,.py.txt 等都属于文本文件。但是文本文件本质上是以二进制形式存储的。

二进制文件:直接由 0 和 1 组成,没有统一的字符编码。比如:.png.avi等都属于二进制文件。

二、文件打开模式

要获取一个文件对象,只需要使用 Python 内置 的 open()函数即可,在 open() 函数中可以指定要打开的文件名

f = open("1.txt", "r")

上面open() 函数第一个参数表示文件名,第二个参数表示打开文件的模式,r 表示只读。

下面是一些文件打开模式

文件打开模式 描述
r 只读模式,默认的打开模式,如果文件不存在报错
w 覆盖写模式,文件不存在创建,存在完全覆盖
x 创建写模式,文件不存在创建,存在报错
a 追加写模式,文件不存在创建,存在在最后追加内容
b 二进制文件模式
t 文本文件模式
+ 与 ‘r w x a’一起使用,在原基础上增加读写功能

三、读文件

文件读取涉及到的函数:

  • f.read(size):默认读取文件的全部内容,如果指定参数值,读取前 size 个长度
  • f.readline(size):默认读取一行内容,如果指定参数值,读取该行前 size 个长度
  • f.readlines():读入文件的所有行,以行为分割点,返回一个列表

按文本格式一次全部读入:

f = open("test.txt", "rt", encoding="utf-8")        # encoding 用于指定打开文件的编码格式
txt = f.read()

print(txt)
f.close()

按二进制格式一次全部读入:

f = open("test.txt", "rb")      # 十六进制表示的字节

分行读入:

f = open("test.txt", "rt", encoding="utf-8")
txt = f.readlines()

for line in txt:
    print(line)
f.close()

四、写文件

文件写入涉及到的函数:

  • f.write(str):向文件写入一个字符串或字节流
  • f.writelines(list):将一个列表中的元素写入文件
  • f.seek(offset):改变当前指针的位置,offset 的含义如下:0-位于文件的开头处,1-位于当前位置,2-位于文件的结尾

写文件:

f = open("test.txt", "a", encoding="utf=8")     # 'a' 表示追加写模式,不会覆盖原来的文本内容
ls = ["\n嘿嘿~", "哈哈~"]

f.writelines(ls)    # 将列表中的元素写入文件
f.close()

读写文件:

f = open("test.txt", "a+", encoding="utf=8")        # 'a+' 表示在 'a' 的基础上增加读能力
ls = ["\n嘿嘿~", "哈哈~"]

f.writelines(ls)
f.seek(0, 0)    # 将文件指针指向文件开始的位置

for line in f.readlines():
    print(line)
f.close()

猜你喜欢

转载自blog.csdn.net/codejas/article/details/80397792