python基础day06

python文件操作

1.文件类型
	文本类型:需要能够看懂的文字,指定正确编码
        编码:
            utf-8
            gbk
            latinl(英文)
            big5(繁体)
    二进制类型:能够直接运行的文件就是二进制文件
2.文件作用:
    目的 永久保存数据不丢失
3.文件操作:
    (1):打开文件
        fp=open(文件路径,打开方式,encoding="编码方式")
        打开方式:
            文本操作: r(读)  w(覆盖写, 自动创建)  a(追加, 自动创建)
            二进制操作: rb  wb  ab (读写追加二进制文件)
	(2): 读写文件
        读:
           fp.read() : 读完
           fp.read(number): 读取指定个数字符
           fp.readline(): 一次读一行
           fp.readlines(): 按行读取所有
        写:
           fp.write(数据)
           fp.writelines([列表]): 写入多条数据(不换行)
    (3): 关闭文件
        fp.close()
4. 循环读取文件内容 (解决大文件读取问题)
    data = fp.read(1024)
    while data: # 其他类型的数据也可以当作布尔值
        # 操作data
        # 继续读
        data = fp.read(1024)        

文本文件复制

# 简单版文件复制
# 打开文件,打开新文件
old_fp = open("./data.txt", "r", encoding="utf-8")
new_fp = open("./data-副本.txt", "w", encoding="utf-8")
# 读取原文件,写到新文件中
data = old_fp.read()  # 读完,原文件内容小
new_fp.write(data)
# 关闭原文件和新文件
old_fp.close()
new_fp.close()



# 大文件版:边读边写
# 打开文件,打开新文件
old_fp = open("./data.txt", "r", encoding="utf-8")
new_fp = open("./data-副本.txt", "w", encoding="utf-8")
# 读取原文件,写到新文件中
data = old_fp.read(6)
while data:
    # 写入内容
    new_fp.write(data)
    # 继续读取文件
    data = old_fp.read(6)
# 关闭原文件和新文件
old_fp.close()
new_fp.close()



# 任意文本文件复制:录入文件路径
file_path = input("请输入需要复制的文件的路径:")
tmp = file_path.split(".")
# print(tmp)
new_file_path = f"{tmp[0]}-副本.{tmp[1]}"  # 新路径
# 打开文件,打开新文件
old_fp = open(file_path, "r", encoding="utf-8")
new_fp = open(new_file_path, "w", encoding="utf-8")
# 读取原文件,写到新文件中
data = old_fp.read(6)
while data:
    # 写入内容
    new_fp.write(data)
    # 继续读取文件
    data = old_fp.read(6)
# 关闭原文件和新文件
old_fp.close()
new_fp.close()




# 任意文件复制:录入文件路径
file_path = input("请输入需要复制的文件的路径:")
tmp = file_path.split(".")
# print(tmp)
new_file_path = f"{tmp[0]}-副本.{tmp[1]}"  # 新路径
# 打开文件,打开新文件
old_fp = open(file_path, "rb")  # 全部使用二进制复制文件,就不需要编码
new_fp = open(new_file_path, "wb")
# 读取原文件,写到新文件中
data = old_fp.read(6)
while data:
    # 写入内容
    new_fp.write(data)
    # 继续读取文件
    data = old_fp.read(6)
# 关闭原文件和新文件
old_fp.close()
new_fp.close()

文件常见操作

先导入包: import os
1.文件重命名
语法:
   os.rename("文件名","新的文件名")
例子:
 	# 重命名文件
	os.rename("./data.txt", "./data_bak.txt")  
2.删除文件
语法:
   os.remove ("文件名")
例子:
    # 删除文件
	os.remove("./data_bak.txt")
3.创建文件夹
语法:
   os.mkdir ("文件夹的名字")
例子:
    # 创建文件夹
	os.mkdir("新建文件夹")
4.获取当前目录
语法:
   os.getcwd()
例子:
    # 获取当前目录
	path = os.getcwd()
	print(path)
5.改变目录
语法:
   os.chdir ()  
   相当于在shell中切换环境,后面的代码也会有所影响
例子:
    # 改变目录
	os.chdir("E:\python code\python基础_day07\上课代码")
	print(os.getcwd())
6.获取目录列表 
语法:
  列表变量 =  os.listdir("目录路径")
例子:
    # 获取目录列表
	print(os.listdir("../"))
7.删除目录
语法:
  os.rmdir("目录路径")
  注意:只能够删除一个空目录
例子:
    # 删除目录
	os.rmdir("文件夹路径")
8.判断是否为目录(文件夹)或者是文件
语法:
   os.path.isdir("目录路径") 判断该文件是否为一个目录(文件夹)
   os.path.isfile("文件路径") 判断路径是否为一个文件
    注意以上写法有path的哦
例子:
    # 判断是否为目录(文件夹)或者文件
	# 判断是否是一个目录
	tmp = os.path.isdir("目录路径")
	print(tmp)
	tmp = os.path.isfile("文件路径")
	print(tmp)
9.获取文件扩展名
语法:
   os.path.splitext ("文件名")
	注意以上写法有path的哦
例子:
    # 获取文件扩展名
	filename, extension = os.path.splitext("./01-文本文件操作.py")
	print(filename)
	print(extension)

批量添加文件前缀和删除前缀

"""
批量操作目录下文件:
1.批量添加前缀
2.批量删除前缀
"""
# 显示功能列表
print("""
1.批量添加前缀
2.批量删除前缀
""")
sn = input("请输入序号:")
# 录入前缀
perfix = input("请输入前缀:")
# 录入目录路径
path = input("请输入操作目录路径:")

# 操作
import os

# 列出指定目录下所有内容
file_list = os.listdir(path)
# 遍历文件列表,判断是否为文件
for f in file_list:
    print(f)
    # 判断
    if not os.path.isfile(os.path.join(path, f)):
        continue
    # 如果是一个文件,添加或删除
    if sn == "1":
        print("添加前缀")
        # 添加就是重命名
        # os.rename(os.path.join(path, f), os.path.join(path, perfix + f))
        os.rename(os.path.join(path, f), os.path.join(path, perfix + f))
    elif sn == "2":
        print("删除前缀")
        # 判断
        if f.startswith(perfix):
            # 删除也是重命名
            os.rename(os.path.join(path, f), os.path.join(path, f[len(perfix):]))
    else:
        print("序号错误~")
        break
else:
    print("执行成功")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值