17 os模块

17 os模块

1 os模块

import os

判断是否是绝对路径
r = os.path.isabs(r'c:\p1\girl.jpg')
print(r)	# True

当前文件所在文件夹路径
path = os.path.dirname(__file__)  
print(path)
path = os.getcwd()  # 类似 os.path.dirname(__file__)
print(path)

获取文件的绝对路径
path = os.path.abspath('aa.txt')
print(path)

获取当前文件的绝对路径
path = os.path.abspath(__file__)
print(path)

判断文件类型
r = os.path.isfile(os.getcwd())
print(r)	# Flase
r = os.path.isdir(os.getcwd())
print(r)	# True

文件的切割
path = r'C:\Users\running\Desktop\python基础\day13(6-14)\代码\day13_文件\code\aa\file01.py'
result = os.path.split(path)
print(result)  # ('C:\\Users\\running\\Desktop\\python基础\\day13(6-14)\\代码\\day13_文件\\code\\aa', 'file01.py')
print(result[1])	# file01.py 获取文件名

result = os.path.splitext(path)  # 分割文件与扩展名
print(result)
# ('C:\\Users\\running\\Desktop\\python基础\\day13(6-14)\\代码\\day13_文件\\code\\aa\\file01', '.py')
print(result[1])	# .py

获取文件的大小
size = os.path.getsize(path)  # 获取文件的大小  单位字节
print(size)

result = os.path.join(os.getcwd(), 'file', 'a', 'a1.jpg')
print(result)

2 os.path里面函数

import os

dir = os.getcwd()  # 获取当前路径

all = os.listdir(r'c:\p1')  # 获取制定路径下所有的文件,保存到列表中

f = os.mkdir(r'c:\p3')  # 创建文件夹

os.path.exists(r'c:\p3')  # 判断文件夹或文件是否存在

# 创建文件夹时,判断文件是已经存在
if not os.path.exists(r'c:\p3'):
    f = os.mkdir(r'c:\p3')
    print(f)

f = os.rmdir(r'c:\p3')  # 只能删除空的文件夹  

os.remove(r'c:\p3\p4\aa.txt') # 删除指定文件

f = os.chdir(r'c:\p1')	# 切换目录到c:\p1


删除非空文件夹方法

案例:删除P4文件夹

path = r'c:\p3\p4'
filelist = os.listdir(path)  # ['a1.doc', 'aa.txt', 'girl.jpg']

for file in filelist:	# 遍历文件名
    path1 = os.path.join(path, file)	# 删除文件的路径拼接
    os.remove(path1)	# 删除文件
else:
    os.rmdir(path)	# 删除文件夹
    print('删除成功!')


os模块下方法总结:
os.getcwd()  获取当前目录
os.listdir()  浏览文件夹
os.mkdir()  创建文件夹
os.rmdir()  删除空的文件夹
os.remove()  删除文件
os.chdir()  切换目录

3 文件夹的复制

"""
将文件 C:/Users/86132/Desktop/原文件 文件夹里面的呃文件,
已同名的方式保存到 C:/Users/86132/Desktop/复制后文件 文件夹中

"""

import os


def copy(src_path, target_path):
    file_list = os.listdir(src_path)    
    for file in file_list:
        file_name = os.path.join(src_path, file)   
        
        if os.path.isdir(file_name):    # 判断文件夹下的文件是否是文件夹,如果是
            target_new_path = os.path.join(target_path, file)
            os.mkdir(target_new_path)   # 创建新的同名文件夹
            copy(file_name, target_new_path)    # 递归执行函数
            
        else:
            with open(file_name, "rb") as operate1:
                container = operate1.read()
                target_new_path = os.path.join(target_path, file)
                with open(target_new_path, "wb") as operate2:
                    operate2.write(container)
    print("复制完成")


copy("C:/Users/86132/Desktop/原文件", "C:/Users/86132/Desktop/复制后文件")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值