Python之文件操作(常用操作)

开始以下操作之前先导入import os 模块

1.获取当前文件所在的文件目录

f = os.path.dirname(__file__)
print(f)

2.连接两个或更多的路径名组件

a = os.path.join(f, 'foo.txt')
print(a)

3.判断是否是绝对路径,返回值—>布尔类型

j = os.path.isabs('cpy.txt')
print(j)

4.通过相对路径得到绝对路径

file = os.path.abspath('../main.py')
print(file)

5.显示当前的工作目录

f1 = os.getcwd()
print(f1)

6.分割文件名

filename = os.path.split(a)
print(filename)

7.分割文件与扩展名

name = os.path.splitext(a)
print(name)

8.返回文件的大小(单位为字节)

file_size = os.path.getsize('WeiLai24.py')
print(file_size)

9.返回指定目录下的所有的文件和文件夹保存在列表中

l = os.listdir('D:\ABC')
print(l)

10.创建文件夹

 new_file = os.mkdir('hhh')
 print('创建成功!')

11.删除文件夹 —> 只能删除空的文件夹

os.rmdir('xjm')
print('删除成功!')
  1. os.remove()删除文件—> Remove a file (same as unlink()).
# delete_file = os.remove('path')
# print(delete_file)

11(删除文件夹)和12(删除文件)一般相互配合使用。
删除文件夹分为两种情况:一.空的文件夹 二.有东西的文件夹
一.空的文件夹 :直接用os.rmdir(‘xjm’),其中xjm为:文件夹的名称,操作如下:

result = os.rmdir('xjm')
print(result) # 其中返回值result为None

二.不为空的文件夹:不能直接删除,需要把里面的东西清空(例如:文件)。
例二:删除例1中所创建的文件夹,操作如下:

 path = r'D:\ABC\file'  # file文件存放的绝对路径
filelist = os.listdir(path) # 获取文件的名称,存放在列表filelist中
for file in filelist:
    path1 = os.path.join(path, file)
    os.remove(path1)
else:
    os.rmdir(path)

13.复制文件

src = r'D:\ABC\p1'
target = r'D:\ABC\img'
def copy(src, target):
    # 获取文件夹里面的内容
    filelist = os.listdir(src)
    # 变量列表
    for file in filelist:
        # 路径拼接
        path = os.path.join(src, file)
   		# 判断是文件夹还是文件(因为初始文件夹可能含有文件夹)
        if os.path.isdir(path):
            # 递归调用copy()
            target_part = os.path.join(target, file)
            os.mkdir(target_part)
            copy(path, target_part)
        else:
            # 打开文件
            with open(path, 'rb') as rstream:
                # 读取文件里面的内容
                container = rstream.read()
                # 目标路径拼接
                path1 = os.path.join(target, file)
                # 写入
                with open(path1, 'wb') as wstream:
                    wstream.write(container)
    else:
        print('复制完成!!!')


copy(src, target)
		
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值