文档章节

Python对文件文件夹的操作实例

乐_然
 乐_然
发布于 2017/07/21 21:04
字数 699
阅读 72
收藏 0

代码背景:

    最近老看视频教程,我需要知道一部教程,需要多久能看完。win下文件夹里,多选视频文件,可以直接在属性中查看一共需要的时间。不过在网上下载的很多视频教程每一章都分布在不同的文件夹下,无法快捷查看所有视频文件的时间。要是把这些视频文件,全部放到一个目录下,就好了。于是写了下面的代码:

import re
import os
import time
import shutil
import datetime

def copyFileToOne(pathFrom,pathTo):
    '''
    递归遍历pathFrom目录,将里面所有的文件,拷贝到pathTo目录下
    :param pathFrom:
    :param pathTo:
    :return:
    '''
    print('进入目录' + pathFrom)
    #假如不存在,创建目标文件夹
    if not os.path.exists(pathTo):
        os.mkdir(pathTo)

    # 当此为文件目录时:
    if os.path.isdir(pathFrom):
        filelist = os.listdir(pathFrom)
        for item in filelist:
            item = pathFrom+os.path.sep+item
            if item == pathTo:
                continue
            elif os.path.isdir(item):
                copyFileToOne(item, pathTo)
            else:
                print('复制文件:' + item)
                print('复制开始...............#begin')
                begintime = datetime.datetime.now()

                shutil.copy(item,pathTo)

                endtime = datetime.datetime.now()
                copytime = (endtime-begintime).seconds
                print('复制结束...............#end')
                print('复制用时(秒)...............#%d' % (copytime,))
                print('...................................')


if __name__=='__main__':
    copyFileToOne(os.getcwd(),'O:\\test\\all')

注意点:
    所有的路径,全部使用绝对路径

 

附录备查:此部分来自于 博客

 

python中对文件、文件夹的操作需要涉及到os模块和shutil模块。

创建文件:
1) os.mknod("test.txt") 创建空文件
2) open("test.txt",w)           直接打开一个文件,如果文件不存在则创建文件

创建目录:
os.mkdir("file")                   创建目录

 

创建多层新目录:

### 创建多层目录

def mkdirs(path): 

    # 去除首位空格

    path=path.strip()

    # 去除尾部 \ 符号

    path=path.rstrip("\\")

 

    # 判断路径是否存在

    # 存在     True

    # 不存在   False

    isExists=os.path.exists(path)

 

    # 判断结果

    if not isExists:

        # 创建目录操作函数

        os.makedirs(path)

        # 如果不存在则创建目录

        print path + u' 创建成功'

        return True

    else:

        # 如果目录存在则不创建,并提示目录已存在

        print path + u' 目录已存在'

        return False


复制文件:
shutil.copyfile("oldfile","newfile")       oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile")            oldfile只能是文件夹,newfile可以是文件,也可以是目标目录

复制文件夹:
shutil.copytree("olddir","newdir")        olddir和newdir都只能是目录,且newdir必须不存在

重命名文件(目录)
os.rename("oldname","newname")       文件或目录都是使用这条命令

移动文件(目录)
shutil.move("oldpos","newpos")    

删除文件
os.remove("file")

删除目录
os.rmdir("dir") 只能删除空目录
shutil.rmtree("dir")    空目录、有内容的目录都可以删 

转换目录
os.chdir("path")    换路径

判断目标
os.path.exists("goal")    判断目标是否存在
os.path.isdir("goal")     判断目标是否目录
os.path.isfile("goal")    判断目标是否文件  

备注:若路径中含中文,在windows环境(编码为GBK)下,要将目录编码成GBK,如:dir.encode('GBK')

© 著作权归作者所有

乐_然
粉丝 12
博文 152
码字总数 36197
作品 0
南京
私信 提问
python 编写自动化小工具 未完成

python 编写自动化小工具 Python split() python数据类型之间的转换 str(demo) python换行写入文件 !/usr/bin/env python ecoding=utf-8 f=open(r"D:opsdevolduseroldused.txt","a+") newlin......

iOS_愛OS
2018/06/21
0
0
Django 基础(一),项目创建、URL路由、数据库操作、模版

一、安装Django 下载地址:https://www.djangoproject.com/download/ 1、tar zxvf Django-1.8.10.tar.gz 2、cd Django-1.8.10 3、python setup.py install 二、创建一个Django项目 django-a......

qw87112
2018/06/28
0
0
Python知识点总结篇(三)

文件操作 对文件操作流程 - 打开文件,得到文件句柄并赋值给一个变量; - 通过句柄对文件进行操作; - 关闭文件; :自动关闭文件; 文件操作之 模式匹配与正则表达式 正则表达式:简称regex,...

村雨1943
2018/10/03
23
0
创建Python2和Python3的虚拟环境

一、windows上安装 1.安装python 分别安装了Python2和Python3 python3.7默认安装目录 安装目录里的python.exe,pip.py自定是否修改 2.安装virtualenv和virtualenvwrapper-win 3.修改虚拟环境 ...

xiaoge2016
2018/07/30
600
2
三行Python代码,让数据预处理速度提高2到6倍

在 Python 中,我们可以找到原生的并行化运算指令。本文可以教你仅使用 3 行代码,大大加快数据预处理的速度。 Python 是机器学习领域内的首选编程语言,它易于使用,也有很多出色的库来帮助...

技术小能手
2018/10/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
今天
8
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
今天
6
0
jar 更新部分文件

C:\Program Files (x86)\Java\jdk1.8.0_102\bin>jar -hIllegal option: hUsage: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...Options: -c c......

圣洁之子
今天
9
0
OSChina 周六乱弹 —— 感谢女装红薯开办了这个网站

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @胖达panda:分享歌词: 我有一只小毛驴我从来也不骑,有一天我心血来潮骑着去赶集,我手里拿着小皮鞭我心里正得意,不知怎么哗啦啦,我摔了一...

小小编辑
今天
2.6K
13
DDD(四)

1,引言 软件开发者大多趋向于将关注点放在数据上,而不是领域上。这对于刚入门的DDD的新手而言也是如此。以我目前的思考方式,数据库依然占据主要的地位。开发一个功能,首先我就会考虑我会...

MrYuZixian
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部