day08 文件操作

1、三种字符串:
    (1)u'' 普通字符串  --->  u'abc'  --->  默认的文本方式,以字符作为文本的输出方式
    (2)b'' 二进制字符串 --->  b'ASCII码'  --->  以二进制(字节)作为文本输出方式,且文本内容必须为ASCII码
    (3)r'' 原义字符串  --->  r'
	' --->  将引号中的转移字符串以原本的意义表示出来(多用于文件路径的表示)

2、文件操作步骤
    (1)通过文件名等从硬盘中找到相应的文件地址,使操作系统就有文件的操作权
    (2)使用应用程序对文件进行操作
    (3)操作完成后,应用程序向操作系统发送请求,使其释放文件的操作权

3、打开文件的方式
    (1)使用open打开文件
        f = open("文件路径及文件名","文件打开模式",enconding="utf-"8)
    (2)使用with open...as 的方式进行文件操作
        with open("文件路径及文件名","文件打开模式",enconding="utf-8") as f:
    (3)使用with open 进行文件操作时,嵌套使用
        with open("文件路径及文件名","操作模式",enconding="utf-8") as f1:
            with open("文件的路径及文件名","操作模式",enconding="utf-8") as f2:
                对文件的操作

4、文件的操作模式
    主模式: r | w | a | x
    从模式: t | b | +1)r  --->  基本读操作
        with open("文件路径及文件名","r",enconding="utf-8") as f1:
            f1.read()  --> 将整个文件读取进内存
            f1.readline()  --> 读取一行文件
            f1.readlines() --> 将每行内容依次添加进列表中,并返回列表
        对文件进行读操作,如果文件不存在则报错
        # 如果想要一行一行的读取文件,可以使用for循环  ---> 重要点
            for line in f1:
                print(line)

    (2)w  --->  基本写操作
        with open("文件路径及文件名","w",enconding="utf-8") as f1:
            f1.write("哈哈")
            f1.writerlines([必须为可迭代的对象,并且内容为字符串])

        对文件进行写操作,如果文件不存在则创建文件,如果文件存在,则清空文件从头开始写

    (3)a  --->  追加操作
        with open("文件路径及文件名","a",enconding="utf-8") as f1:
            采用追加的方式对文件进行写操作,默认从文件的结尾添加

    (4)x  --->  写操作,文件不存在创建,文件存在报错
        with open("文件路径及文件名","x",enconding="utf-8") as f1:
        如果文件存在则报错,如果文件不存在则创建文件并写入

    t --->  以文本方式进行文件的操作,是文件操作的默认方式, rt = r
    (5) rt 以普通方式进行文件读操作,如果文件不存在则抱错问题 ---> 与 r 相同
    (6) wt 以普通字符串的方式对文件进行写操作,如果文件存在则清空后写入,如果文件不存在则创建文件后写入  --> 与 w 相同
    (7) at 以普通文本方式对文件进行追加操作,,默认写到文件的末尾  --->与 a  相同

    b --->  以字节的方式对文件进行操作
     with open("文件路径及文件名","wb") as f1:
        f1.write()
    (8) rb 以字节的方式对文件进行读操作,如果文件不存在则报错
    (9) wb 以字节的方式对文件进行操作,如果文件存在则清空后添加,如果文件不存在则创建文件
    (10) ab 以字节的方式对文件进行操作,默认添加到文件的末尾

    + ---> 以读写的方式对文件进行操作
    (11) r+ 可读可写的读,如果文件不存在则报错,【如果文件存在则从头开始替换写】
    (12) w+ 可读可写的写,如果文件存在则清空写,如果文件不存在则进行创建文件后进行写入
    (13) a+ 可读可写的追加,如果文件不存在则进行创建,如果文件存在则在末尾进行添加

5、游标操作
    游标由于是以字节作为移动的单位,所以文件必须是b模式,又因为只有在读取文件时才有游标,所以,文件的游标概念只有在 rb 模式下才能起作用
    游标操作使用seek()方法,seek('移动的位数','起始的位置')
        起始的位置主要有三个: 0 --> 文档开头
                           1 --> 当前位置
                           2 --> 文档末尾
    with open("3.txt", "rb") as f:
        f.seek(-2, 2)
        print(f.read(2))

6、文档的复制
with open("3.txt","r",encoding="utf-8") as f1:
    with open("4.txt","w",encoding="utf-8") as f2:
        for line in f1:
            f2.write(line)
            
7、enconding编码
    在使用 t 模式进行文件操作时,需要标明编码方式,enconding="utf-8"
    在使用 b 模式进行文件操作时,不能标明编码方式,否则会报错
原文地址:https://www.cnblogs.com/lice-blog/p/10752543.html