文件处理

在 Python 中使用文件的关键函数是 open() 函数。
open() 函数有两个参数:文件名和模式。
参数file:传入一个文件名(路径)
参数mode:文件打开的模式

有四种打开文件的不同方法(模式):
(操作文本文件)
“r” - 读取 - 默认值。打开文件进行读取,如果文件不存在则报错。
“a” - 追加 - 打开供追加的文件,如果不存在则创建该文件。
“w” - 写入 - 打开文件进行写入,如果文件不存在则创建该文件。
“x” - 创建 - 创建指定的文件,如果文件存在则返回错误。

(图片、视频文件,读取或写入)
rb:只读,如果文件不存在则报错,二进制打开
wb:打开文件进行写入,如果文件不存在则创建该文件,二进制打开
ab:打开供追加的文件,如果不存在则创建该文件,二进制打开

此外,您可以指定文件是应该作为二进制还是文本模式进行处理。

“t” - 文本 - 默认值。文本模式。
“b” - 二进制 - 二进制模式(例如图像)。

①打开文件
②进行操作(读或写)
③关闭文件
#打开文件的句柄

f = open(file='a.txt', mode='r', encoding='utf-8')
# 读取文件的内容
res = f.read()
print(res)
# 关闭文件
f.close()

注:读出来显示乱码
pycharm>setting>File Encodings 中所有设置为uft-8或者read中设置为gbk

读操作:
read:默认读取文件中所有内容
readline():读取一行内容
readlines():按行读取所有内容,返回列表[a, b]

python open函数gbk python open函数 wb_打开文件


实例1:

f = open("demofile.txt", "r")
print(f.read())

python open函数gbk python open函数 wb_python_02


只读取文件的一部分

默认情况下,read() 方法返回整个文本,但您也可以指定要返回的字符数:

实例2:
返回文件中的前五个字符:

f = open("demofile.txt", "r")
print(f.read(5))

python open函数gbk python open函数 wb_开发语言_03


读行

您可以使用 readline() 方法返回一行:

实:3:
读取文件中的一行:

f = open("demofile.txt", "r")
print(f.readline())

python open函数gbk python open函数 wb_开发语言_04


通过两次调用 readline(),您可以读取前两行:

实例4:
读取文件中的两行:

f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())

python open函数gbk python open函数 wb_python_05


通过循环遍历文件中的行,您可以逐行读取整个文件:

实例5:

逐行遍历文件:

f = open("demofile.txt", "r")
for x in f:
  print(x)

python open函数gbk python open函数 wb_后端_06


关闭文件

完成后始终关闭文件是一个好习惯。

实例
完成后关闭文件:

f = open("demofile.txt", "r")
print(f.readline())
f.close()

python open函数gbk python open函数 wb_python_07


写操作:

f = open(file=“demofile2.txt”, mode=“a”, encoding=‘utf-8’)

f.write("\n" + “python”)

\n:换行符

实例
打开文件 “demofile2.txt” 并将内容追加到文件中:

f = open("demofile2.txt", "a")
f.write("Now the file has more content!")
f.close()

#open and read the file after the appending:
f = open("demofile2.txt", "r")
print(f.read())

python open函数gbk python open函数 wb_python_08


实例

打开文件 “demofile3.txt” 并覆盖内容:

f = open("demofile3.txt", "w")
f.write("Woops! I have deleted the content!")
f.close()

#open and read the file after the appending:
f = open("demofile3.txt", "r")
print(f.read())

python open函数gbk python open函数 wb_后端_09


注释:“w” 方法会覆盖全部内容。

创建新文件
如需在 Python 中创建新文件,请使用 open() 方法,并使用以下参数之一:

“x” - 创建 - 将创建一个文件,如果文件存在则返回错误
“a” - 追加 - 如果指定的文件不存在,将创建一个文件
“w” - 写入 - 如果指定的文件不存在,将创建一个文件

删除文件
如需删除文件,必须导入 OS 模块,并运行其 os.remove() 函数:

实例
删除文件 “demofile.txt”:

import os
os.remove("demofile.txt")

检查文件是否存在
为避免出现错误,您可能需要在尝试删除文件之前检查该文件是否存在:

实例
检查文件是否存在,然后删除它:

import os
if os.path.exists("demofile.txt"):
  os.remove("demofile.txt")
else:
  print("The file does not exist")

删除文件夹
如需删除整个文件夹,请使用 os.rmdir() 方法:

实例
删除文件夹 “myfolder”:

import os
os.rmdir("myfolder")

提示:您只能删除空文件夹。

r:表示转义
如果路径中存在例如\t则无法识别,因为\t表示空格
例如:
r‘C:、python\test.txt’

repr():查看原始格式

print("{'a':11}")
print(repr("{'a':11}"))
print(eval("{'a':11}"))

python open函数gbk python open函数 wb_开发语言_10

with:上下文管理器协议的启动器
打开文件,返回文件的句柄
with open去操作文件会自动关闭文件
实例:

with open(file='log.jpg', mode='rb') as f:
    res = f.read()
    print(res)