Python文件操作

Python文件操作

文件的编码

计算机只能识别:0和1,我们需要使用编码技术(密码本)将内容翻译成0和1存入。计算机中有许多可用编码:UTF-8、GBK、Big5等,不同的编码,将内容翻译的二进制也是不相同的。

编码

  • 编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。
  • 编码有许多中,我们最常用的是UTF-8编码

文件的读取

文件的操作步骤

  1. 打开文件
  2. 读写文件
  3. 关闭文件
    注意:可以只打开和关闭文件,不进行任何读写

文件的操作方法

  1. open(name, mode, encoding) 示例代码:f = open('文件地址', 'r', encoding=”UTF-8)

    • name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
    • mode:设置打开文件的模式(访问模式):只读、写入、追加等。
      • r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
      • w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。
        如果该文件不存在,创建新文件.
      • a:打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。
        如果该文件不存在,创建新文件进行写入。
    • encoding:编码格式(推荐使用UTF-8)
  2. read() 示例方法:文件对象.read(num)

    • num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
  3. readlines() 示例方法:文件对象.readlines()

    • readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
  4. readline() 示例方法:文件对象.readline()

    • 一次读取一行内容
  5. for循环读取文件

    for line in open("文件地址", "r"):
        print(line)
    
  6. close 示例方法:文件对象.close()

    • 关闭文件对象,(如果不关闭文件对象文件会被一只占用着)
  7. with open

    • 通过在with open的语句块中对文件进行操作
    • 可以在操作完成后自动关闭close文件,避免遗忘掉close方法
    • 语法:
    with open("文件地址", "r") as f:
        f.readlines()
    

操作方法汇总

编号 方法 描述
1 文件对象 = open(file, mode, encoding) 打开文件获得文件对象
2 文件对象.read(num) 读取指定长度字节,不指定num读取文件全部
3 文件对象.readline() 读取一行
4 文件对象.readlines() 读取全部行,得到列表
5 for line in 文件对象 for循环文件行,一次循环得到一行数据
6 文件对象.close() 关闭文件对象
7 with open() as f 通过with open语法打开文件,可以自动关闭
# 打开文件
f = open("E:/test.txt", "r", encoding="UTF-8")
print(type(f))

# 读取文件 read()
print(f"读取10个字节的内容是:{f.read(10)}")
print(f"read方法读取全部内容是:{f.read()}")
f.close()

print("---------------------------------readlines------------------------------------")

# 读取文件 readlines()
f = open("E:/test.txt", "r", encoding="UTF-8")
lines = f.readlines() # 读取文件的全部行,封装到列表中
print(f"lines的对象类型是:{type(lines)}")
print(f"lines的对象内容是:{lines}")
f.close()

print("---------------------------------readline------------------------------------")

# 读取文件 readline()
f = open("E:/test.txt", "r", encoding="UTF-8")
line1 = f.readline()
line2 = f.readline()
line3 = f.readline()
print(f"第一行数据:{line1}")
print(f"第二行数据:{line2}")
print(f"第三行数据:{line3}")
f.close()

print("---------------------------------for循环------------------------------------")

# for循环读取文件行
f = open("E:/test.txt", "r", encoding="UTF-8")
for line in f:
    print(f"每一行数据:{line}")

# 文件关闭
f.close()

print("---------------------------------with open------------------------------------")
# with open语法操作文件
with open("E:/test.txt", "r", encoding="UTF-8") as f:
    for line in f:
        print(f"每一行数据:{line}")

文件的写入

写入语法:open("文件名称", "w", encoding="UTF-8")
写入方法:

  • wirte(),写入内容
  • flush(),刷新内容到硬盘中

注意事项:

  • w模式,文件不存在,会创建新文件
  • w模式,文件存在,会清空原有内容
  • close()方法,带有flush()方法的功能
# 打开不存在的文件
f = open("E:/gta5.txt", "w", encoding="UTF-8")
# wirte写入
f.write("Hello World!!!")  # 将内容写入内存中
# flush刷新
f.flush()                  # 将内存中的积攒的内容,写入到硬盘的文件中
# 关闭文件
f.close()                  # close()方法,内置了flush的功能

# 打开一个存在的文件
f = open("E:/gta5.txt", "w", encoding="UTF-8")
# wirte写入
f.write("无敌")
# 关闭文件
f.close()

文件的追加

追加写入语法:open("文件名称", "a", encoding="UTF-8")
追加写入方法(和w模式一致):

  • wirte(),写入内容
  • flush(),刷新内容到硬盘中

追加注意事项:

  • a模式,文件不存在,会创建新文件
  • a模式,文件存在,会在原内容后面继续写入
  • 可以使用\n来写出换行符
f = open("E:/gta5.txt", "a", encoding="UTF-8")
# write写入 flush刷新
f.write("炒鸡")
# close关闭
f.close()
posted @ 2023-09-13 11:30  橙香五花肉  阅读(1)  评论(0编辑  收藏  举报