OS模块,shutil,模块,批量文件命名和合并

OS模块是与操作系统相关的模块:

函数说明范例
os.getcwd()获取当前工作路径os.getcwd()
os.listdir()获取指定文件夹里的文件名(包含文件夹)os.listdir("D:/python")
os.mkdir()创建文件夹os.mkdir("D:/python/test")
os.rmdir()删除文件夹(空文件夹)os.rmdir("D:/python/test")
os.remove()删除文件os.remove("D:/python/test.py")
os.rename()更改文件夹(文件)名称os.rename("D:/python/old_name","D:/python/new_name")
os.path.getsize()获取文件大小os.path.getsize("D:/python/test")

 

OS.path模块函数说明:

os.path 模块主要用于获取文件的属性。

以下是 os.path 模块的几种常用方法:
方法                             说明
os.path.abspath(path)         返回绝对路径
os.path.basename(path)        返回文件名
os.path.commonprefix(list)    返回list(多个路径)中,所有path共有的最长的路径
os.path.dirname(path)         返回文件路径
os.path.exists(path)          如果路径 path 存在,返回 True;如果路径 path 不存在,返False。
os.path.lexists               路径存在则返回True,路径损坏也返回True
os.path.expanduser(path)      把path中包含的"~"和"~user"转换成用户目录
os.path.expandvars(path)      根据环境变量的值替换path中包含的"$name"和"${name}"
os.path.getatime(path)        返回最近访问时间(浮点型秒数)
os.path.getmtime(path)        返回最近文件修改时间
os.path.getctime(path)        返回文件 path 创建时间
os.path.getsize(path)         返回文件大小,如果文件不存在就返回错误
os.path.isabs(path)           判断是否为绝对路径
os.path.isfile(path)          判断路径是否为文件
os.path.isdir(path)           判断路径是否为目录
os.path.islink(path)          判断路径是否为链接
os.path.ismount(path)         判断路径是否为挂载点
os.path.join(path1[, path2[, ...]])     把目录和文件名合成一个路径
os.path.normcase(path)         转换path的大小写和斜杠
os.path.normpath(path)         规范path字符串形式
os.path.realpath(path)         返回path的真实路径
os.path.relpath(path[, start])     从start开始计算相对路径
os.path.samefile(path1, path2)     判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2)     判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2)     判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path)           把路径分割成 dirname 和 basename,返回一个元组
os.path.splitdrive(path)      一般用在 windows 下,返回驱动器名和路径组成的元组
os.path.splitext(path)        分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path)        把路径分割为加载点与文件
os.path.walk(path, visit, arg)     遍历path,进入每个目录都调用visit函数,visit函数必须
有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames     设置是否支持unicode路径名

 

shutil 模块补充os模块,如复制文件:shutil.copyfile;删除非空文件夹:shutil.rmtree等。

shutil.copyfile(src,dst)::  oldfile和newfile都只能是文件。    

shutil.copy(src,dst):       复制一个文件到一个文件或一个目录

shutil.copy2(src,dst):       在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了

shutil.copymode( src, dst) : 只是会复制其权限其他的东西是不会被复制的

shutil.copystat( src, dst)  :    复制权限、最后访问时间、最后修改时间

shutil.copytree(src,dst):      srcr和dst都只能是目录,且dst必须不存在 

shutil.move(src,dst):          移动文件夹或文件 

shutil.rmtree("dir") :           空目录、有内容的目录都可以删

shutil.which(cmd, mode=os.F_OK | os.X_OK, path=None):  返回到一个可执行文件的路径,如果给定的cmd被调用,它将被运行。如果没有调用cmd,则返回None。

shutil.get_terminal_size(fallback=(columns, lines)):   获取终端窗口的大小。

shutil.disk_usage(path):       返回磁盘的使用统计信息,将给定路径作为一个命名的元组,并使用属性总计、使用和空闲,这是总、使用和空闲空间的总量,以字节数表示。

可参考链接:https://www.jb51.net/article/145522.htm          https://docs.python.org/zh-cn/3/library/shutil.html

 

以下实现文件夹和文件批量重命名:

# coding = 'utf-8'
方式一:

import os

def rename(path):
    i = 0
    '该文件夹下所有的文件(包括文件夹)'
    FileList = os.listdir(path)
    '遍历所有文件'
    for files in FileList:
        '原来的文件路径'
        oldDirPath = os.path.join(path, files)
        '如果是文件夹则递归调用'
        if os.path.isdir(oldDirPath):
            rename(oldDirPath)
        '文件名'
        fileName = os.path.splitext(files)[0]
        '文件扩展名'
        fileType = os.path.splitext(files)[1]
        '新的文件路径'
        newDirPath = os.path.join(path, str(i) + fileType)
        '重命名'
        os.rename(oldDirPath, newDirPath)
        i += 1


path = 'C:\\Users\Administrator\Desktop\AssetScan\\vuln'
rename(path)


方式二:

import os

path = 'C:\\Users\Administrator\Desktop\AssetScan\\vuln'
files = os.listdir(path)
for i, file in enumerate(files):
    NewName = os.path.join(path, "AssetScan_"+file)
    OldName = os.path.join(path, file)
    os.rename(OldName, NewName)

 

以下在Windows的CMD命令操作窗口或python程序中实现将.ts文件合并为.mp4文件:

1. 将文件夹内的 .ts文件名处理好. 一般均为按顺序排列. (殊情况需要根据.m3u8文件记录处理.)

  举例,根据实际情况处理. (可使用文件名修改程序处理)

    a1.ts a2.ts 这样的 在a后面加000  变成 a0001.ts a0002.ts

    a12.ts a13.ts 这样的 在a后面加00  变成 a0012.ts a0013.ts

    a100.ts a200.ts 这样的在a后面加0 变成 a0100.ts a0200.ts

    这样处理后, 文件名的位数一致都是5位.

    请注意, 文件名不处理好的话.合并的视频会错乱!

2. 文件名处理好后, 使用 cmd . 输入以下命令

  copy /b  D:\a\*.ts  D:\b\new.ts

      很快合并完成, 会在D:\b\ 下生成一个new.ts 这个就是合并好的文件.

3. 把new.ts 重命名为 new.mp4 使用普通的视频播放器就可以播放了.

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾稿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值