Python 文件处理常用方法

文件删除

整个删除,无论有没有文件

 shutil.rmtree(file_path)

找到文件一个个删除

import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))

区别

import os
os.remove(path)  # path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用rmdir()来删除
os.rmdir(path)  # path是文件夹路径,注意文件夹需要时空的才能被删除
os.unlink('F:\新建文本文档.txt')  # unlink的功能和remove一样是删除一个文件,但是删除一个删除一个正在使用的文件会报错。
import os
os.removedirs(path)  # 递归地删除目录。如果子目录成功被删除,则将会成功删除父目录,子目录没成功删除,将抛异常。
os.remove()# 删除文件
os.unlink()# 删除文件。它是remove()方法的Unix名称。
shutil.rmtree()# 删除目录及其下面所有内容。
pathlib.Path.unlink()# 在Python 3.4及更高版本中用来删除单个文件pathlib模块。

获取文件大小

# !/usr/bin/python3.4
# -*- coding: utf-8 -*-
 
import os
 
 
# 字节bytes转化kb\m\g
def formatSize(bytes):
    try:
        bytes = float(bytes)
        kb = bytes / 1024
    except:
        print("传入的字节格式不对")
        return "Error"
 
    if kb >= 1024:
        M = kb / 1024
        if M >= 1024:
            G = M / 1024
            return "%fG" % (G)
        else:
            return "%fM" % (M)
    else:
        return "%fkb" % (kb)
 
 
# 获取文件大小
def getDocSize(path):
    try:
        size = os.path.getsize(path)
        return formatSize(size)
    except Exception as err:
        print(err)
 
 
# 获取文件夹大小
def getFileSize(path):
    sumsize = 0
    try:
        filename = os.walk(path)
        for root, dirs, files in filename:
            for fle in files:
                size = os.path.getsize(path + fle)
                sumsize += size
        return formatSize(sumsize)
    except Exception as err:
        print(err)
 
 
if __name__ == "__main__":
    print(getDocSize("../detailhtml/20161103112313.html"))
    # 1006.142578kb
    print(getFileSize("../data/"))
    # 111.856756M

从路径中获取文件名

方法一:split

s=r"C:\Users\Desktop\lesson\python\calss1.py"

s.split("\\")[-1] #输出为 class1.py

方法二:rfind

s=r"C:\Users\Desktop\lesson\python\calss1.py"
n=s.rfind("\\")#找到"\\"出现的位置
s[n+1:] #输出为 class1.py
s[:n] #输出为 'C:\\Users\\Desktop\\lesson\\python'

方法三:os.path.basename()

s='C:/Users/Desktop/lesson/python/calss1.py'
import os
os.path.dirname(s) #输出为 'C:/Users/Desktop/lesson/python'
os.path.basename(s) #输出为 class1.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值