python文件操作

1.文件的编码

  • 编码技术:一种翻译的规则集合,记录如何将内容翻译成二进制,以及如何让将二进制翻译回可识别内容。常见的编码有UTF-8(最常用)、GBK、Big5等。
  • 为什么要使用编码:计算机只认识0和1,所以需要将内容翻译成0he1才能保存在计算机中,同时也需要编码将计算机保存的0和1,反向翻译成可以识别的内容。

2.文件的读取

  • 打开文件函数open:可以打开一个已经存在的文件,或者创建一个新文件,语法如下 open(name,mode,encoding)
  • name:要打开的目标文件名的字符串(可包含文件所在的具体路径)。
  • mode:设置打开的模式:只读r、写入w(原有的内容会删除)、追加a(新内容写入到已有的内容之后)等。
  • encoding:编码格式。
示例:

f=open(‘python.txt’,‘r’,encoding=“UTF-8”)
读操作相关的方法
read(num):num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,表示读取文件中所有的数据。
readlines():readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
readline():一次读取一行。
for line in f:可通过for循环一行一行读取文件。
close:关闭打开的文件。
with open:通过with open打开的文件可以操作完可以自动关闭。

代码演示:
# 打开文件
f = open("D:/quiz.txt","r",encoding="UTF-8")
# 读取文件:read(num)
print(f.read())
# 关闭文件重新打开,不然下面受上一个读取影响打开为空
f.close()
f = open("D:/quiz.txt","r",encoding="UTF-8")
# 读取文件:readlines()
print(f.readlines())
# 关闭文件重新打开,不然下面受上一个读取影响打开为空
f.close()
f = open("D:/quiz.txt","r",encoding="UTF-8")
# 读取文件:readline()
print(f.readline())
# 关闭文件重新打开,不然下面受上一个读取影响打开为空
f.close()
f = open("D:/quiz.txt","r",encoding="UTF-8")
# 可用for循环输出每一行
for line in f:
    print(line)
# 关闭文件重新打开,不然下面受上一个读取影响打开为空
f.close()
f = open("D:/quiz.txt", "r", encoding="UTF-8")
# 通过with open打开的文件可以操作完可以自动关闭
with open("D:/quiz.txt", "r", encoding="UTF-8") as f:
    f.read()

3.文件的写入

  • open(“D:/write.txt”,“w”,encoding=“UTF-8”)
  • write():写入文件,直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区。
  • flush():刷新内容,当调用flush的时候,内容会真正写入文件。这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)。
代码演示:
# 打开文件,一个不存在的文件。注意:当打开的文件不存在,会直接创建,如果存在会直接清空
f = open("D:/write.txt","w",encoding="UTF-8")
# write写入文件
f.write("quiz write.")
# flush刷新内容
f.flush()
# close关闭文件
f.close()

4.文件的追加

open(“D:/write.txt”,“a”,encoding=“UTF-8”)
其他操作与w模式文件的写入一致,只是a模式与w模式打开文件时不会清空文件。

代码演示:
# 打开文件,一个存在的文件。注意:a模式打开当打开的文件不存在,会直接创建,如果存在不会清空
f = open("D:/write.txt","a",encoding="UTF-8")
# write写入文件
f.write("quiz write.")
# flush刷新内容
f.flush()
# close关闭文件
f.close()

你可能感兴趣的:(python,python)