文件处理
在 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]
实例1:
f = open("demofile.txt", "r")
print(f.read())
只读取文件的一部分
默认情况下,read() 方法返回整个文本,但您也可以指定要返回的字符数:
实例2:
返回文件中的前五个字符:
f = open("demofile.txt", "r")
print(f.read(5))
读行
您可以使用 readline() 方法返回一行:
实:3:
读取文件中的一行:
f = open("demofile.txt", "r")
print(f.readline())
通过两次调用 readline(),您可以读取前两行:
实例4:
读取文件中的两行:
f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())
通过循环遍历文件中的行,您可以逐行读取整个文件:
实例5:
逐行遍历文件:
f = open("demofile.txt", "r")
for x in f:
print(x)
关闭文件
完成后始终关闭文件是一个好习惯。
实例
完成后关闭文件:
f = open("demofile.txt", "r")
print(f.readline())
f.close()
写操作:
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())
实例
打开文件 “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())
注释:“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}"))
with:上下文管理器协议的启动器
打开文件,返回文件的句柄
with open去操作文件会自动关闭文件
实例:
with open(file='log.jpg', mode='rb') as f:
res = f.read()
print(res)