文件操作的模式
# 1. r: 以字符串的方式读取文件中的数据
# 2. w: 以字符串的方式写入数据到文件
# 3. a: 以字符串的方式追加写入数据到文件
文件的读取
- 打开文件
file = open("1.txt", "r", encoding="utf-8")
注意点:
# 1. 在windows的python解释器下,打开文件默认的编码格式是gbk
# 2. 在linux和mac os的python解释器下,打开文件默认的编码格式是utf-8
# cp936 => gbk ,936页
print(file.encoding)
-
读取文件中的数据
content = file.read() # read方法表示读取文件中的所有数据
print(content, type(content)) -
关闭文件
file.close()
文件的写入
打开文件, 以w模式写入数据
file = open("2.txt", "w", encoding="utf-8")
写入指定数据
file.write("哈哈")
file.write("yyy")
关闭文件
file.close()
总结:
# 以w模式打开文件的时候,如果文件存在,那么会先把文件中的数据情况,然后写入最新的数据,原数据不保留
# 以我模式打开文件的时候,如果文件不存在,那么会创建一个空的文件,然后再写入新的数据
文件的追加
打开文件, 以a模式追加写入数据到文件
file = open("3.txt", "a", encoding="utf-8")
写入指定数据到文件
file.write("嘻嘻")
关闭文件
file.close()
总结:
# 以a模式写入数据到文件,如果文件不存在,会创建一个空的文件,然后追加写入数据
# 以a模式写入数据到文件,如果文件存在,则会在文件的末尾追加写入数据,原文件中的数据保留
文件的拷贝
1、# 原文件的名字
src_file_name = "1.txt"
file_name, end_str = src_file_name.split(".")
# print(file_name, end_str)
2、# 生成后的目标文件文件的文件名
dst_file_name = file_name + "-新文件." + end_str
print(dst_file_name)
-
打开目标文件,创建空的文件
dst_file = open(dst_file_name, “w”, encoding=“utf-8”)
src_file = open(src_file_name, “r”, encoding=“utf-8”)
-
读取原文件中的数据
src_file_data = src_file.read()
-
把读取到的原文件中的数据写入到目标文件里面
dst_file.write(src_file_data)
-
关闭文件
src_file.close()
dst_file.close()
二进制copy图片
打开文件, 以wb模式按照二进制的方式写入数据,不要指定encoding
dst_file = open("321.jpg", "wb")
打开文件, 以rb模式按照二进制的方式读取图片中的数据
file = open("123.jpg", "rb")
file_data = file.read()
#print(file_data)
#print(type(file_data))
dst_file.write(file_data)
file.close()
dst_file.close()
拷贝任何类型的文件可以采用二进制模式, rb或者wb模式
二进制读写文件
# dst_file = open("5.txt", "wb")
#
# content = "aaaaa"
把字符串转成字节或者二进制
# file_data = content.encode("utf-8")
# print(file_data, type(file_data))
# dst_file.write(file_data)
# dst_file.close()
dst_file = open("5.txt", "rb")
data = dst_file.read()
print(data, type(data))
把二进制数据转成字符串
content = data.decode("utf-8")
print(content, type(content))
dst_file.close()
import os
import shutil # 文件和文件操作的高级模块
文件的相关操作
重命名
# os.rename("111.jpg", "333.jpg")
删除文件
# os.remove("11.txt")
创建文件夹
# os.mkdir("AAA")
创建空的文件到AAA目录里面
# file = open("AAA/123.txt", "w")
# file.close()
# file = open("AAA/234.txt", "w")
# file.close()
统计指定目录下的文件名
# file_names = os.listdir("AAA")
# print(file_names)
# os.mkdir("BBB")
# os.rmdir("BBB") # 只能删除空目录
# os.rmdir("AAA")
删除文件夹及文件夹里面所有文件
# shutil.rmtree("AAA")
判断当前目录下是否有指定的文件
# result = os.path.exists("1.txt")
#
# print(result)
# os.mkdir("AA")
# file = open("AA/123.txt", "w")
# file.close()
获取当前操作目录路径
path = os.getcwd()
print(path)
result = os.path.exists("AA/123.txt")
print(result)
file_name, end_str = os.path.splitext("abc.txt")
print(file_name, end_str)