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 相关文章推荐
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
浅析Python中的序列化存储的方法
Apr 28 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
PyQt5实现拖放功能
Apr 25 Python
Python 实现网页自动截图的示例讲解
May 17 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
python3射线法判断点是否在多边形内
Jun 28 Python
django 连接数据库 sqlite的例子
Aug 14 Python
python异常处理和日志处理方式
Dec 24 Python
python的sys.path模块路径添加方式
Mar 09 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 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
咖啡语言
2021/03/03 咖啡文化
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
VBScript版代码高亮
2006/06/26 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
2015/12/25 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
Python完全新手教程
2007/02/08 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
SQL Server面试题
2013/04/04 面试题
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
简历中自我评价范文3则
2013/12/14 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
租房协议书范本
2014/04/09 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
2016教师国培研修感言
2015/12/08 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书