020 Python语法之文件大魔王

文件

文件打开

File = open(orginPath, "r", -1, encoding="utf-8", errors="strict")

1. open函数

  1. 参数1:源文件路径
  2. 参数2:打开方式(r-读,w-写)
  3. 参数3:...
  4. 参数4:编码方式
  5. 参数5:错误检查级别(strict-严格检查,编码有问题就报错、ignore-错误忽略)

文件关闭

file.close()

文件关闭注意点

  1. 文件如果不关闭有可能数据没有写进文件
  2. 文件关闭会将数据写入文件中

文件读取

read函数

file.read()
file.read(10)

read函数注意点

  1. read方法如果不加参数是默认读取所有数据
  2. read方法如果加参数是读取N个字符的意思

readline函数

line = file.readline()

readline函数注意点

  1. 如果没有读取到数据会为None
  2. 一次读取的是一行数据

readlines函数

lineList = file.readlines()

readlines函数注意点

  1. 读取的是所有的数据
  2. 数据以每一行数据形成的列表组成的

将对象写入文件

import pickle
myList = [1,2,3,4]
file = open(r"1.txt","wb")
pickle.dump(myList,file)    # 保存List到文件

file.close()

将对象从文件中导出

import pickle
file = open(r"1.txt","rb")
myList = pickle.load(file)    # 保存List到文件

file.close()

文件内存模式读取数据

lineList = file.readlines()

文件内存模式读取注意点

  1. 文件读取数据被保存在了list列表中

文件硬盘模式读取数据

line = file.readline()

文件硬盘模式读取注意点

  1. 文件是一行一行被读取在内存中,每一行的数据都被回收了,所以不耗费内存

文件简单加密

文件简单解密

二进制加密

二进制解密

二进制密码加密

二进制密码解密

文件切割

文件排序

文件归并排序

文件夹归并排序

内存版二分查找(高速检索)

大Bug

  1. 生成索引只能用rb进行读取源文件(必要)
  2. 操蛋的索引,索引写入文件的长度一定要大于等于源文件字节的长度(操蛋,浪费老子半天)
  3. 一定要记录要查找的文件的条数(必要)

硬盘版二分查找(高速检索)

  1. 就是将索引生成在硬盘里,不用加换行符

索引排序法硬盘版二分查找

  1. 这个不需要源文件进行排序,只需要对索引进行排序(索引文件如果太大也会有问题)

with...as...

  1. 自动关闭文件

with...as...的用法

with open(path, "r", errors="ignore") as file:
    line = file.readline()
    

with...as... 与 for 的用法对比

with open(path, "r", errors="ignore") as file:
    line = file.readline()
    print(line)

for line in open(path, "r", errors="ignore"):
    print(line)

with...as...组合用法

with open(path, "r", errors="ignore") as file, open(path2, "w") as file2, open(path3, "w") as file3:
    line = file.readline()
    file2.write(line)
    file3.write(line)

深度遍历(栈实现)

  1. 某一条线一直挖下去,之后才会返回

广度遍历(队列实现)

  1. 整体遍历完之后才会深入

你可能感兴趣的:(020 Python语法之文件大魔王)