python对文件目录的操作方法实例总结


Posted in Python onJune 24, 2019

本文实例讲述了python对文件目录的操作方法。分享给大家供大家参考,具体如下:

python 可以很方便的对文件进行打开,读写操作,删除操作,也可以很方便的对文件夹进行遍历操作。总体说来,有如下几个方面:

1. python 遍历文件目录,当然可以递归
2. python 删除文件
3. python 对文件进行重命名操作
4. python 创建文件夹 (多个层级创建)
5. python 删除文件夹  (多个层级删除)
6. python 移动文件
7. python 查找文件
8. 得到文件夹的大小

下面的代码是我在用python 做一个网盘服务端的时候用到的一些方法,记录下来,以供以后参考.

#coding:utf-8
import StringIO
import json
import os
import time
import glob
import shutil
DATETIMEFORMATER='%Y-%m-%d %X'
#only for windows
RECYCLED_FOLDER_NAME='Recycled'
def dateformat(datetime):
  '''return GMT TIME,need to change to LOCAL TIME'''
  return time.strftime( DATETIMEFORMATER,time.gmtime(datetime) )
def filesizeformat(size):
  ''' Convert file size to string '''
  KBSIZE=1024.00
  strSize='0 Byte'
  if (size < KBSIZE):
    strSize = '%.2f Byte' % (size)
  elif (size >= KBSIZE and size < KBSIZE**2):
    strSize = '%.2f K' % (size / KBSIZE)
  elif (size >= KBSIZE**2 and size < KBSIZE**3):
    strSize = '%.2f M' % (size / KBSIZE / KBSIZE)
  elif (size >= KBSIZE**3):
    strSize = '%.2f G' % (size / KBSIZE / KBSIZE / KBSIZE)
  return strSize
def listdir(path):
  if os.path.isfile(path):
    return '[]'
  allFiles=os.listdir(path)
  retlist=[]
  for cfile in allFiles:
    fileinfo={}
    filepath=(path+os.path.sep+cfile).replace("\\","/")
    if cfile==RECYCLED_FOLDER_NAME:
      continue
    if os.path.isdir(filepath):
      fileinfo['isfile'] = '0'
      fileinfo['size'] = getfoldersize(filepath)
    else:
      fileinfo['isfile'] = '1'
      fileinfo['size'] = os.path.getsize(filepath)
    fileinfo['name'] = cfile
    fileinfo['lastvisittime'] = dateformat( os.path.getatime(filepath) )
    fileinfo['createtime'] = dateformat( os.path.getctime(filepath) )
    fileinfo['lastmodifytime'] = dateformat( os.path.getmtime(filepath) )
    retlist.append(fileinfo)
  retStr=json.dumps(retlist,encoding='utf-8')
  return retStr
def deletefile(path):
  if os.path.exists(path):
    os.remove(path)
def rename(old,new):
  if os.path.exists(old):
    os.rename(old, new)
def checkoutfile(path):
  pass
def checkinfile(path):
  pass
def lockfile(path):
  pass
def unlockfile(path):
  pass
def createfolder(path):
  if not os.path.exists(path):
    os.mkdir(path)
def createfolders(path):
  if not os.path.exists(path):
    os.makedirs(path);
def deletefolder(path):
  if os.path.isdir(path):
    os.rmdir(path)
def retreeExceptionHandler(fun,path,excinfo):
  pass
def deletefolders(path):
#  if os.path.isdir(path):
#    os.removedirs(path)
  shutil.rmtree(path,ignore_errors=False,onerror=retreeExceptionHandler)
def movefile(old,new):
  shutil.move(old, new)
def getfoldersize(path):
  size = 0
  for root, dirs, files in os.walk(path):
    size += sum([os.path.getsize(os.path.join(root, name)) for name in files])
  return size
def searchfile(path,ext):
  returnList=glob.glob1(path, ext)
  return returnList
if __name__=='__main__':
  listdir('c:/vDriver')
  #searchfile('c:/vDriver','*.log')

上面的代码,根据方法的命名,就可以知道 python 操作文件以及文件夹的各种方法。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
Sep 15 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
python多线程之事件Event的使用详解
Apr 27 Python
python读取各种文件数据方法解析
Dec 29 Python
python生成器用法实例详解
Nov 22 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
PyQt5实现登录页面
May 30 Python
基于OpenCV的路面质量检测的实现
Nov 04 Python
python 下载m3u8视频的示例代码
Nov 11 Python
Python中全局变量和局部变量的理解与区别
Feb 07 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 #Python
python跳出双层for循环的解决方法
Jun 24 #Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 #Python
解决python执行不输出系统命令弹框的问题
Jun 24 #Python
python实现在cmd窗口显示彩色文字
Jun 24 #Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 #Python
python隐藏终端执行cmd命令的方法
Jun 24 #Python
You might like
PHP中设置时区方法小结
2012/06/03 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
js页面跳转常用的几种方式
2010/11/25 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python2/3中urllib库的一些常见用法
2017/12/19 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
Django REST framwork的权限验证实例
2020/04/02 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
企业后勤岗位职责
2014/02/28 职场文书
正科级干部考察材料
2014/05/29 职场文书
党课心得体会范文
2014/09/09 职场文书
项目合作协议书
2014/09/23 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle