Python——文件操作

文件操作的模式

 # 1. r: 以字符串的方式读取文件中的数据
# 2. w: 以字符串的方式写入数据到文件
# 3. a: 以字符串的方式追加写入数据到文件

文件的读取

  1. 打开文件
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)
  1. 读取文件中的数据

    content = file.read() # read方法表示读取文件中的所有数据
    print(content, type(content))

  2. 关闭文件

    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)
  1. 打开目标文件,创建空的文件

    dst_file = open(dst_file_name, “w”, encoding=“utf-8”)

    src_file = open(src_file_name, “r”, encoding=“utf-8”)

  2. 读取原文件中的数据

    src_file_data = src_file.read()

  3. 把读取到的原文件中的数据写入到目标文件里面

    dst_file.write(src_file_data)

  4. 关闭文件

    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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值